php使用include 和require引入文件的区别


Posted in PHP onFebruary 16, 2017

最近有小伙伴,提问了有关于require_once的有关问题,对于程序中遇到的问题,无聊难度大小,只要bug存在就还值得我们去探索,去解决。针对这个问题,我把include和require的详细用法进行归纳。(结合查阅资料和自己的理解,整合出来的)希望能给有需要的小伙伴一点帮助。

引入文件:

首先需要一个php文件:

<?php
class shao//类名必须和文件名相同!!!
{
  public $xxx="666";
}
$shili = new shao();
echo $shili->xxx;
?>

引用:

<?php
//引入文件
include "shao.php";//引用文件;只能引用一遍
//引用多个则费劲
//include_once("shao.php");//一次又一次
//也可以require ("shao.php");
?>

其中include与require的区别:

require:

执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。

require() :无条件包含,如果文件不存在,会报出一个fatal error.脚本停止执行
require遇到错误时,直接报错并停止运行程序

include:

执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。
include() : 有条件包含,如果文件不存在,会给出一个 warning,但脚本会继续执行
include遇到错误时(引用的文件不存在),PHP只是报错,但程序会继续运行下去

 以下为补充:

1. include有返回值,而require没有。
2. include()包括并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。
3. include_once()的作用和include()是几乎相同的 唯一的差别在于include_once()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。
4. require()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。 这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。
5. 如同include_once(),require_once()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
6. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require。
7. require通常放在PHP程序的最前面,PHP程序在执行前,就会先读入require所指定引入的文件,使它变成PHP程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
8. include一般是放在流程控制的处理部分中PHP程序网页在读到include的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。

推荐使用require_once()和include_once(),可以检测文件是否有重复包含。

自动加载:

被引用的php文件:

<?php
class shao//类名必须和文件名相同!!!
{
  public $xxx="666";
}

?>

自动加载:

<?php
function __autoload($asd)
{
  require $asd.".php";//可填地址查找
}
$shili = new shao();
echo $shili->xxx;
?>
PHP 相关文章推荐
用PHP连接MySQL代码的参数说明
Jun 07 PHP
PHP下常用正则表达式整理
Oct 26 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
php去除头尾空格的2种方法
Mar 16 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
Yii框架上传图片用法总结
Mar 28 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
详解php伪造Referer请求反盗链资源
Jan 24 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 #PHP
使用PHPMailer发送邮件实例
Feb 15 #PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 #PHP
php使用GD2绘制几何图形示例
Feb 15 #PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 #PHP
php使用Jpgraph创建折线图效果示例
Feb 15 #PHP
php使用Jpgraph创建3D饼形图效果示例
Feb 15 #PHP
You might like
Search Engine Friendly的URL设计
2006/10/09 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
javascript import css实例代码
2008/07/18 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
js对象的比较
2011/02/26 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
详解Node 定时器
2018/02/26 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
python实现清屏的方法
2015/04/30 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python实现感知机模型的示例
2020/09/30 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
params有什么用
2016/03/01 面试题
美容师的职业规划书
2013/12/27 职场文书
前处理班长职位说明书
2014/03/01 职场文书
端午节演讲稿
2014/05/23 职场文书
八月一日观后感
2015/06/10 职场文书