包括之间的差异

时间:2015-07-26 07:31:44

标签: php

我最近发现php中有更多类型的include() 我的问题是下面的指示之间有什么不同:

include_once 'file.txt';
include 'file.txt';

include ('file.txt');
include_once ('file.txt');

如果未创建file.txt,我得到的错误消息是什么?

1 个答案:

答案 0 :(得分:0)

文件名周围的括号没有区别。 include是一种语言结构,而不是一个函数,因此它的参数不需要括号。所以它们是等价的,就像:

echo "foo";
echo ("foo");

因此,只有两种形式:includeinclude_once。它们之间的区别是,如果您尝试在同一脚本中多次包含同一文件,则会发生这种情况。 include每次都会包含它,include_once只会在第一次执行此操作,并忽略所有重复。

如果文件执行某些操作(例如回显HTML或设置变量),则通常使用includeinclude_once用于定义函数和类的文件,因为如果您尝试重新定义它们,这些文件将会出错。

如果该文件不存在,您将收到如下警告:

  

警告:include(file.txt):无法打开流:第4行的/path/to/your/script.php中没有此类文件或目录
      警告:include():在第4行的/path/to/your/script.php中打开'file.txt'以包含(include_path =':')失败

includeinclude_once的警告相同。

还有requirerequire_once。它们就像includeinclude_once,但如果文件不存在则不会打印警告,而是打印错误并停止脚本。