我最近发现php中有更多类型的include()
我的问题是以下说明的区别是什么:
include_once 'file.txt';
include 'file.txt';
include ('file.txt');
include_once ('file.txt');
如果没有创建file.txt
,我得到的错误信息是什么?
文件名周围的括号没有区别。include
是一个语言结构,而不是一个函数,所以它不需要在参数周围加上括号。所以它们是等价的,就像:
echo "foo";
echo ("foo");
所以只有两种形式:include
和include_once
。它们之间的区别在于,如果您试图在同一脚本中多次包含相同的文件,将会发生什么。include
将每次都包含它,include_once
将只在第一次执行它,并忽略所有重复。
如果文件执行某些操作,例如回显HTML或设置变量,则通常使用include
。include_once
用于定义函数和类的文件,因为如果您尝试重新定义它们,这些文件将得到错误。
如果文件不存在,你会得到这样的警告:
警告:include(file.txt): failed to open stream:第4行/path/to/your/script.php中没有这样的文件或目录
警告:include():打开'file.txt'包含失败(include_path='.:')在/path/to/your/script.php的第4行
include
和include_once
的警告相同。
还有require
和require_once
。它们就像include
和include_once
一样,但是如果文件不存在,它不会打印警告,而是打印错误并停止脚本。