include require 区别

来源:互联网 发布:淘宝大拿韩代是正品吗 编辑:程序博客网 时间:2024/05/16 11:36
很多人在用include require可以实现文件引入,但这两个函数有什么区别呢

1、

require() :如果文件不存在,会报出一个fatal error.后面的脚本停止执行 相当后面exit

include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行
如以下 xxx.php为不存在路径

include('xxx.php');
echo 'test';
这样将会是

Warning: include(xxx.php) [function.include]: failed to open stream: No such file or directory inF:\apmserv\www\Henry\test.php on line 2

Warning: include() [function.include]: Failed opening 'xxx.php' for inclusion (include_path='.;F:\apmserv\lib_include') in F:\apmserv\www\Henry\test.php on line 2
test


require('xxx.php');
echo 'test';
将会是以下结果

Warning: require(xxx.php) [function.require]: failed to open stream: No such file or directory inF:\apmserv\www\Henry\test.php on line 2

Fatal error: require() [function.require]: Failed opening required 'xxx.php' (include_path='.;F:\apmserv\lib_include') inF:\apmserv\www\Henry\test.php on line 2

2、不同之处在于,对include()来说,在include()执行时文件每次都要进行读取和评估;
而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。
这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。

3、require是只执行一次的,不,这么说不恰当。应当说,require是先替代,将指定文件的内容代进来,再运行,所以它不知道你是否设置了FOR循环。而include语句,是什么时候执行到了,什么把指定文件的内容代进来,继续执行。

所以,如果每次执行代码时想读取不同的文件,或者有通过一组文件叠代的循环,就使用 include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。

4、include在执行时,如果 include 进来的文件发生错误的话,不会立刻停止;而 require 则会立刻终止程序,不再往下执行。

5、include可以用在循环; require不行。   

6、include有返回值,而require没有(可能因为如此require的速度比include快)

7 、如果为了防止同个文件被多次引入可以用 
include_once  require_once 分别代替上面的函数
原创粉丝点击