资讯专栏INFORMATION COLUMN

PHP中include()和require()的区别

Hanks10100 / 2198人阅读

摘要:是否有条件引用在变成中,与的功能相同,但在用法上却有一些不同,是有条件包含函数,而则是无条件包含函数。

1.引用文件方式

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

2.是否有条件引用

在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:


if($something){include("somefile");}

但不管$something取何值,下面的代码将把文件somefile包含进文件里:

if($something){require("somefile");}

下面的这个有趣的例子充分说明了这两个函数之间的不同。

$i = 1; while ($i < 3) {require("somefile.$i"); $i++;}

在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():

1 $i = 1; 2 while ($i < 3) { 3 include("somefile.$i"); 4 $i++; 5 }
3.报错

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

test.php

  test2.php 

浏览第一个文件,因为没有找到test999.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:

Warning: include(test1aaa.php) [function.include]: failed to open stream: No such file or directory in D:WebSite	est.php on line 2

Warning: include() [function.include]: Failed opening ‘test1aaa.php’ for inclusion (include_path=’.;C:php5pear’) in D:WebSite	est.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	est.php on line 2

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29678.html

相关文章

  • PHPrequireinclude区别

    摘要:基本概述在中都是用来加载文件的。带和不带的区别主要是带的会判断你在加载这个文件之前是否已经加载过了文件,避免重复加载。一般是放在流程控制的处理区段中。这种方式,可以把程式执行时的流程简单化。经测试,不存在该区别。可能低版本存在该区别。 基本概述 require、require_once、include、include_once 在php中都是用来加载文件的。 带once和不带once...

    ysl_unh 评论0 收藏0
  • includeinclude_once、requirerequire_once区别

    摘要:作用上同包含文件并运行使用位置函数内函数外方法内异是基础上进一步封装,增加了一个文件是否已经包含的判断性能上异由于是基础上进一步封装,所以比速度慢使用上异包含的文件存在错误或者不存在的话,那么程序就会中断执行了,并显示致命错误包含的文件存在 作用上 同:包含文件并运行(使用位置:函数内、函数外、方法内) 异:include_once/require_once是include/requ...

    Tamic 评论0 收藏0
  • PHP基础知识梳理

    摘要:双引号单引号区别双引号解释变量,单引号不解释变量双引号里插入单引号,其中单引号里如果有变量的话,变量解释双引号的变量名后面必须要有一个非数字字母下划线的特殊字符,或者用讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误能使单引 双引号单引号区别 双引号解释变量,单引号不解释变量双引号里插入单引号,其中单引号里如果有变量的话,变量解释双引号的变量名后面必须要有一个非数字、字...

    luoyibu 评论0 收藏0
  • PHP基础知识梳理

    摘要:双引号单引号区别双引号解释变量,单引号不解释变量双引号里插入单引号,其中单引号里如果有变量的话,变量解释双引号的变量名后面必须要有一个非数字字母下划线的特殊字符,或者用讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误能使单引 双引号单引号区别 双引号解释变量,单引号不解释变量双引号里插入单引号,其中单引号里如果有变量的话,变量解释双引号的变量名后面必须要有一个非数字、字...

    wemallshop 评论0 收藏0
  • PHP面试总结记录

    摘要:尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在很大的应用系统中。由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务结束。 1、双引号和单引号的区别~双引号解释变量,单引号不解释变量~双引号解释转义字符,单引号不解释转义字符,但是解释和~能使单引号字符尽量使用单引号,单引号的效率比双引号要高(双引号要先遍...

    zebrayoung 评论0 收藏0

发表评论

0条评论

Hanks10100

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<