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