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