帮你怎么区别include和require

如何你多次面对PHP面试,会发现这种问题会经常出现,是不是很难区别开呢,其实不然,下面就跟大家分享一下,关于include和require的区别。

1.引用文件方式
对include()来说,在include()执行时文件每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。另一方面,如果每次执行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。

2.是否有条件引用

在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量 s o m g t h i n g 为 真 , 则 将 包 含 文 件 s o m e f i l e : i f ( somgthing为真,则将包含文件somefile: if( somgthingsomefileif(something){
include(“somefile”);
}
但不管 s o m e t h i n g 取 何 值 , 下 面 的 代 码 将 把 文 件 s o m e f i l e 包 含 进 文 件 里 : i f ( something取何值,下面的代码将把文件somefile包含进文件里: if( somethingsomefileif(something){
require(“somefile”);
}
引至绿叶软件站 http://www.lyrjz.com/ 下面的这个有趣的例子充分说明了这两个函数之间的不同。
i = 1 ; w h i l e ( i = 1; while ( i=1;while(i < 3) {
require(“somefile.$i”);
$i++;
}
在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():
i = 1 ; w h i l e ( i = 1; while ( i=1;while(i < 3) {
include(“somefile.$i”);
$i++;
}

3.报错

用例子来说话,写两个php文件,名字为test1.php 和test2.php,注意相同的目录中,不要存在一个名字是test999.php的文件。
test.php

<?PHP include (”test999.php”); echo “abc”; ?>

test2.php

<?PHP require (”test999.php”) echo “abc”; ?>

浏览第一个文件,因为没有找到test999.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:
Warning: include(test1aaa.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Warning: include() [function.include]: Failed opening ‘test1aaa.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2
abc

浏览第二个文件,因为没有找到test999.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:
Warning: require(test1aaa.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Fatal error: require() [function.require]: Failed opening required ‘test1aaa.php’ (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2

现在就能很清楚的知道include和require的区别:include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码,require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值