<![CDATA[PHP - YiiBlog]]> http://yiiblog.lofter.com zh-cn 60 <![CDATA[PHP include,require和include_once,require_once区别]]> http://yiiblog.lofter.com/post/2c4acd_bc1cf2

PHP的include(),require(),include_once(),require_once()是四种包含文件的方法, 对于这四种方法的区别以及使用, 做一下归纳总结:

一、加载失败的处理方式不同 

1、对于include()会产生一个警告, 而对于require()则会产生一个错误(脚本停止执行)

2、include()包含文件不存在,会给出一个 warning,脚本继续执行

3、require()包含文件不存在, 会报出一个fatal error,脚本停止进行。

推荐使用include_once()和require_once()来避免重复包含文件。

二、性能及使用 

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

2、require是只执行一次的,不,这么说不恰当。应当说,require是先替代,将指定文件的内容代进来,再运行,所以它不知道你是否设置了FOR循环。而include语句,是什么时候执行到了,什么把指定文件的内容代进来,继续执行。所以,如果每次执行代码时想读取不同的文件,或者有通过一组文件叠代的循环,就使用 include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。

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

4、include有返回值,而require没有(可能因为如此require的速度比include快)require的使用方法:这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。include使用方法:这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

三、include_once()、require_once()语句在脚本执行期间包括并运行指定文件。 

1、此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。require_once()函数的作用和 require() 是几乎相同的。

2、include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。include_once()函数的作用和 include() 是几乎相同的。

3、require_once的作用是会检查之前是否加载过该文件,如果没有加载则加载 如果加载过就不再次加载,比如某文件定义了一个类型 如果两次加载该文件会出现错误。




LOFTER:PHP - YiiBlog   http://yiiblog.lofter.com/post/2c4acd_bc1cf2]]>
http://yiiblog.lofter.com/post/2c4acd_bc1cf2 Thu, 19 Dec 2013 15:44:08 +0800