我有3个不同的文件 -
fileMainIncludeEverywhere.php
...
include_once('fileMinorInclude.php');
?>
fileMinorInclude.php
...
include_once('fileMainIncludeEverywhere.php');
...
fileToRun.php
...
include_once('fileMainIncludeEverywhere.php');
...
我有很多文件,例如 fileToRun.php 。
目前我的代码中没有任何错误,但我想知道是否会出现这种情况会失败?
答案 0 :(得分:1)
我认为在这种情况下没有错误。由于include_once
将仅首次加载文件,因此将针对同一文件拒绝即将发生的加载请求。
所以从你的例子:
fileToRun.php
将加载fileMainIncludeEverywhere.php
(第一次通话)fileMainIncludeEverywhere.php
将加载fileMinorInclude.php
(第一次通话)fileMinorInclude.php
会调用加载fileMainIncludeEverywhere.php
但会被拒绝,因为它已在第一步中加载。希望它会有所帮助。
答案 1 :(得分:1)
include_once语句在执行脚本期间包含并评估指定的文件。这是一种类似于include语句的行为,唯一的区别是如果文件中的代码已经包含在内,则不会再包含,并且include_once返回TRUE。顾名思义,该文件只包含一次。
这里"文件中的代码"还需要执行PHP文件。
请注意,除非您有使用include_once()的具体原因(例如包括可选模板组件),否则使用require_once()
代替include_once()
通常是最佳做法。这是因为如果找不到所需的资源,require_once()将终止(fail fast),并且找不到它应该是终端失败。