2010-10-04 125 views
4

这工作:问题与包括PHP

require_once 'ModuleTest.php'; 

但这不会:

require_once './ModuleTest.php'; 

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

+0

我不明白为什么这很重要,但嘿,你用双引号试试? – Vache 2010-10-04 14:54:34

+0

是的,我只是试过,没有改变一个东西 – 2010-10-04 15:17:35

回答

0

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

+0

我用我在这里写的代码。在OS X上,这就像Unix,所以没有“\” – 2010-10-04 14:18:42

+0

哦(不知道我理解你的问题):我没有用我的系统上的“\”替换“/”(或PHP配置文件,或其他) – 2010-10-04 14:21:19

1

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

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

但是,如果您指定路径,它将跳过第一部分,并只查看相对于原始脚本的路径。

因此,如果你说include('ModuleTest.php');,它会看起来更多的位置比如果你说include('./ModuleTest.php');

查看documentation page for include()以查看发生了什么。

它可能会令人困惑,最好的建议是保持路径结构尽可能易于管理。

+0

好的,但是在这里,两个文件都在同一个目录中!所以它应该工作。 – 2010-10-04 14:31:57