include_once require_once两个函数的区别吗
解释一下这两个函数的区别:include_once、require_once
include()产生一个警告而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用require()。include()就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。注意在 PHP 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。
include_once
include_once()语句在脚本执行期间包含并运行指定文件。此行为和include()语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
include_once()应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。
require_once
require_once()语句在脚本执行期间包含并运行指定文件。此行为和require()语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。有关此语句怎样工作参见require()的文档。
require_once()应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。
个人使用经验:
1.路径问题。
特别是 嵌套包含的时候,一定的注意包含文件的路径。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一个文件夹下,这个时候往往很容易出错误。
解决方案:定义一个基路径sitebase
2.效率问题
include_once,require_once,与include,require比较,效率要低一点,因为他们至少得先判断一下这个文件是否存在。
其它区别:
inclue的文件中如果有错误会断续执行当前脚本
require的文件中如果有错误就会停止招待当前脚本
各自加once就是只能包含一次~~~