include()
、require()
语句包含并运行指定文件。这两结构在包含文件上完全一样,唯一的区别是对于错误的处理。require()
语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。include()
则继续即行。
include('hello.php');
echo 'include test final!';//include报错,但是会继续执行,显示:include test final!
require('hello.php');
echo 'require test final!';//require报错,停止代码的执行。
include()
语句将在其被调用的位置处包含一个文件。包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果。
使用include()
时可以忽略括号。
可以根据条件来执行include()
语句。在条件语句中使用include()
有个怪现象,它必须包围在语句块大括号中,或者用其他语句包围符括起来。
include_once()函数的作用与include相同,不过它会首先验证是否已经包含了该文件。如果已经包含,则不再执行include_once。否则,则必须包含该文件。除了这一点与include完全相同。
require()
在很大程度上与include
相同,都是将一个模板文件包含到require
调用坐在的位置。
require
和include
之间有两点重要的区别。首先,无论require的位置如何,制定文件都将包含到出现require的脚本中。例如,即使require
放在计算结果为假的if语句中,依然会包含指定文件。
第二个重要的区别是:require
出错时,脚本将停止运行,而在使用include
的情况下,脚本将继续执行。
随着网站越来越大,可能会出现重复包含某些文件。这也许不是问题,但又是修改了所包含文件的变量后,却由于后面再次包含原来的文件而被覆盖,可能不希望出现这种情况。还可能出现另一个问题,即所包含文件中函数名的冲突。使用require_once
就可以解决这些问题。
require_once
函数确保文件只包含一次。在遇到require_once
后,后面再试图包含相同的文件时将被忽略。