include与require的区别

时间:2015-1-6    作者:晨曦    分类:


“include”与“required”的作用都是相同的,唯一不同的是PHP在遇到“include”命令时,它就必须重新解释一次。如果在同一个PHP网页中出现10次“include”命令时,它便会被重新解释10次。不过当PHP遇到“require”命令时,不管它在同一个PHP网页中出现过几次,PHP只会解释一次而已。
“require”的工作方式是为了让PHP程序得到更高的效率,所以当它在同一个PHP网页中解释过一次后,第二次出现便不会再解释,这是它的优点。不过严格来说,这也是它的唯一 的缺点,因为它不会重复解释引入的文件,所以当PHP网页中使用循环或条件语句来引入文件时,“require”则不会做任何的改变。当有类似这样的情形时,就必须使用“include”命令来引入 文件了。
当PHP遇到一个利用“include”方式引入的文件,它就会解释一次;遇到第二次时,PHP还是会重新解释一次。与“require”相比,“include”的执行效率则会下降许多;而且当引入文件中包含了用户自定义的函数时,PHP在解释的过程中会发生函数重复定义的问题。不过“include”也不是没有优点的,因为在PHP网页中,它会每遇到一次“include”命令就会重复解释一次,所以非常适合使用在循环或条件判断的语句里。
“include_once()”函数和“require_once()” 函数功能完全相同,会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
现在来说include和require的区别:
require()函数包含进来的内容被当成当前文件的一个组成部分,所以当包含进来的文件有语法错误或者文件不存在的时候,那当前文件的PHP脚本都不再执行. include()函数相当于指定这个文件的路径,当被包含的文件有错时,不会影响到本身的程序运行.
include函数可以进行判断是否包含,而require则是不管任何情况都包含进来.所以这点值得注意! 建议大家在包含动态文件,也就是有变量,函数,已经类的时候用include.不过前段时间有人在分析两个函数的执行效率.这个我没自己测试过,等亲自测试了再进行补充
通过 include() 或 require() 函数,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。除了它们处理错误的方式不同之外,这两个函数在其他方面都是相同的。include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。