包含在PHP中的问题

时间:2010-10-04 14:13:05

标签: php include

这有效:

require_once 'ModuleTest.php';

但这不会:

require_once './ModuleTest.php';

为什么?这导致了同一个文件! (我在Os X上,所以文件路径是正确的)。两个文件都在同一目录中。

2 个答案:

答案 0 :(得分:1)

require(和include)如果指定路径并且您已经在包含文件中,则工作方式会有所不同。

如果没有指定路径,它首先查看包含路径(即包含文件的位置的预设列表),然后在运行的原始脚本的路径中,如果找不到在那里,它查看当前文件的路径(即实际执行包含的文件)。

但是,如果指定路径,则会跳过第一部分,并仅查看相对于原始脚本的路径。

因此,如果您说include('ModuleTest.php');,它会查找更多的位置,而不是您说include('./ModuleTest.php');

请参阅documentation page for include(),了解具体情况。

这可能令人困惑,最好的建议是让您的路径结构尽可能易于管理。

答案 1 :(得分:0)

您是否将斜线切换为'\'?我认为这可能是问题,但不是OS X用户,我不确定......