我有点困惑,所以你能想出的任何答案都会帮助我开始研究问题所在的位置。
我有/folder1/API.php使用:require_once('../ folder2 / Core.php');
然后我使用/folder1/Panel.php:require_once('folder2 / Core.php'); (请注意,没有'..')。
不知何故,API.php和Panel.php都可以找到Core.php,即使它们位于同一个文件夹但是require_once参数不同。
甚至更奇怪:在/folder2/Core.php中,有require_once('../ folder3 / DBConfig.php');其中API.php能够通过,但是当从Panel.php调用一个函数时,它说我找不到'../ folder3 / DBConfig.php'。
答案 0 :(得分:4)
要求(和包含)也会搜索您的包含路径,也许文件夹包含在那里。
根据给定的文件路径包含文件,如果没有给出,则包含 指定的include_path。如果在。中找不到该文件 include_path,include()最终将检入调用脚本自己的 失败前的目录和当前工作目录。该 include()构造将在无法找到文件时发出警告;这个 是require()的不同行为,它将发出致命错误。 http://www.php.net/manual/en/function.include.php
答案 1 :(得分:0)
请注意..说index.php
包含另一个文件夹中的文件test.php
。
test.php
包含一些包含其他文件的相对路径。
由于test.php
中包含index.php
,因此其中的所有相对路径都将相对于index.php
进行计算(因此大多数都会被破坏)
还有一件事:
Files are included based on the file path given or, if none is given, the include_path specified. If the file isn't found in the include_path, include() /and likewise require/ will finally check in the calling script's own directory and the current working directory before failing.