首先,我們要先明白相對路徑和絕對路徑的理論:
絕對路徑:是從盤符開始的路徑,形如
C:\windows\system32\cmd.exe
相對路徑:是從當前路徑開始的路徑,假如當前路徑為C:\windows
要描述上述路徑,只需輸入
system32\cmd.exe
實際上,嚴格的相對路徑寫法應為
.\system32\cmd.exe
其中,.表示當前路徑,在通道情況下可以省略,只有在特殊的情況下不能省略。
假如當前路徑為c:\program files
要調用上述命令,則需要輸入
..\windows\system32\cmd.exe
其中,..為父目錄。
當前路徑如果為c:\program files\common files
則需要輸入
..\..\windows\system32\cmd.exe
另外,還有一種不包含盤符的特殊絕對路徑,形如
\windows\system32\cmd.exe
無論當前路徑是什么,會自動地從當前盤的根目錄開始查找指定的程序
所以,在tp5里面,你要明白相對路徑是什么定義:使用 __DIR__ 常量定義的路徑都是相對路徑,這個常量表示當前的路徑,在不同地方使用,得出的結果都不一樣。
你可以理解為除了使用這個常量之外定義的都是絕對路徑(簡單來說),一般來說使用 APP_PATH 常量定義的路徑都是絕對路徑。