我們都知道,要取得目前PHP腳本所在目錄的絕對路徑,dirname(__FILE__) 和 __DIR__都可以實現。那麼什麼情況下用 dirname(__FILE__),什麼情況下用 __DIR__ 呢?它們之間有什麼區別? (推薦學習:PHP影片教學)
dirname(__FILE__)由兩部分組成, __FILE__ 魔術變量和 dirname() 函數。 __FILE__是目前腳本的絕對路徑,經過 dirname() 函數後,就可以取得腳本所在目錄的絕對路徑。
舉個栗子,有個hello.php 文件,其部署在伺服器的目錄是:/home/www/website/hello.php
那麼,__FILE__的值是:/home/www/website/hello.php
dirname(__FILE__) 回傳就是:/home/www/website/
如果我們在hello.php 用__DIR__全域變量,就可以直接得到所在目錄的絕對路徑:/home/www/website/,和dirname(__FILE__) 效果完全一樣。
在實作相同功能的情況下,dirname(__FILE__)多了一層函數呼叫。所以, __DIR__ 比 dirname(__FILE__) 在效率上有優勢。
__FILE__ 和 dirname() 函數從 PHP 4.0.2 就開始啟用。
__DIR__ 變數則是 PHP5.3.0 新增的。
所以,如果你的PHP版本大於等於PHP5.3.0,建議使用 __DIR__。否則,最好還是用 dirname(__FILE__),以確保程式不會出錯。
以上是PHP取得絕對路徑dirname(__FILE__)和__DIR__比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!