別的程式語言在處理include中的相對目錄時,都是以當前處理的檔案作為基準。也就是說,如果a包含b,b包含c時,c再包含乙個含相對路徑的檔案,那麼路徑是相對於c的。這樣的處理很自然,符合人們的直覺,也便於開發出路徑無關的程式包。
但php並不是這樣
它優先相對工作目錄來處理,並且如果路徑中包含. …的話,則只相對於工作目錄。也就是說當前的專案路徑是工作目錄(入口檔案上的所在路徑)。
各大開源框架基本上採用絕對路徑方法,這樣可以避免相對路徑因為包含訪問檔案變了,基準路徑變化,讓包含出現錯誤了。
使用解決路徑好處除了可以在大型專案中,包含時候更準確定位到檔案,不易產生錯誤外。還有另外乙個好處,包含檔案,效能會得到很大提公升。
PHP 包含檔案路徑問題
最近剛剛在學php,在做乙個小專案,用到了很多require和include,被絕對路徑 相對路徑弄的焦頭爛額,最後終於搞明白了。1 php的相對路徑是以執行的指令碼為準,比如a包含b,b包含c,如果a c在同一級目錄,則b裡包含c的路徑應該是相對於a的,如果b c在同一級目錄,則b裡包含c的路徑是...
PHP中檔案包含的路徑問題
在程式中當前資料夾下檔案路徑可以表示為3種 1 絕對路徑,2 相對路徑,3 直接檔名 例如在 var www下的a.php 1 var www a.php 2 a.php 3 a.php 在php中包含乙個檔案路徑也可以有以上3中方法,但效率是依次遞減的。原因可以通過strace來追蹤。首先寫乙個t...
標頭檔案路徑包含問題
標頭檔案包含兩種,系統標頭檔案和自定義標頭檔案,系統標頭檔案不說了,格式統一,自定義標頭檔案在包含的時候要注意路徑,其實是標頭檔案與主檔案的相對位置關係的問題。ps 另外,linux和windows下也有所區別。舉4個例子,應該就能看明白了。一.這種情況下,在main.c中包含標頭檔案如下 incl...