PHP要求失败,没有错误

Tar*_*gol 5 php require include

这是我几个小时一直在努力的代码:

if ((require $_SESSION['ROOT_PATH'] . '/templates/core/menu_js.php') == 'OK') {
   echo 'OK';
} else {
   echo 'KO';
}
Run Code Online (Sandbox Code Playgroud)

如果我正确理解了"require"指令中的PHP文档,则永远不应该写入"KO",因为如果require不起作用,则会引发错误.

就我而言,即使出现错误调整,也会始终显示"KO":

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR);
Run Code Online (Sandbox Code Playgroud)

请注意,相同的要求(或包含)在网站的其他页面中完美运行.

编辑

在观看文档后添加了if结构.起初,我只有一行:

require $_SESSION['ROOT_PATH'] . '/templates/core/menu_js.php';
Run Code Online (Sandbox Code Playgroud)

当我检查这条线不起作用时,我添加了if.

顺便说说.必需页面(当它工作时)将script标签添加到我从未在此唯一页面上看到的调用页面.在使用此require的任何其他页面上,脚本将显示在输出中.

所以我的问题应该是"如果没有显示所需php文件的输出,为什么没有引发错误?"

Mat*_*t S 4

根据文档

成功包含,除非被包含的文件覆盖,否则返回 1...此外,还可以从包含的文件返回值。您可以像获取普通函数一样获取包含调用的值。

所以你的文件没有返回“OK”。它返回 1(成功)或自定义值。

require是一种语言构造,而不是标准函数。通过使用,require您已经表明如果找不到文件,代码应该失败。您很可能不需要检查返回值。