include和require区别
include/require/include_once/require_once区别
参考:https://blog.csdn.net/weixin_38676357/article/details/81673986
request 有“需要、需求”的意思,如果没有获取的需要的文件,程序将停止执行,并报致命的错误。
include 表示“包含”,一般在执行过程中再包文件包含进来,如果要包含的文件不存在,则产生一个警告,然后继续执行后面的代码。
例如:hello.php 不存在时:
include('hello.php');
echo 'include test final!';//include报错,但是会继续执行,显示:include test final!
require('hello.php');
echo 'require test final!';//require报错,停止代码的执行。
include_once() 语句在脚本执行期间包含并运行指定文件。此行为和 include() 语句类似,唯一区别是include_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。
通常用于嵌套包含的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。
随着网站越来越大,可能会出现重复包含某些文件。这也许不是问题,但又是修改了所包含文件的变量后,却由于后面再次包含原来的文件而被覆盖,可能不希望出现这种情况。还可能出现另一个问题,即所包含文件中函数名的冲突。使用require_once就可以解决这些问题。
require_once函数确保文件只包含一次。在遇到require_once后,后面再试图包含相同的文件时将被忽略。
路径问题
特别是嵌套包含的时候,一定得注意包含文件的路径。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一个文件夹下,这个时候往往很容易出错误。
解决方案:可以使用 dirname(__FILE__)
语句,这句的意思是获得当前脚本的绝对路径。如:require_once(dirname(__FILE__).'/config.php');