PHP獲取絕對路徑dirname(__FILE__)和__DIR__比較

2020-07-16 10:05:47

我們都知道,要獲取當前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__) 在效率上有優勢

PHP版本支援

__FILE__ 和 dirname() 函數從 PHP 4.0.2 就開始啟用。

__DIR__ 變數則是 PHP5.3.0 新增的。

所以,如果你的PHP版本大於等於PHP5.3.0,建議使用 __DIR__。否則,最好還是用 dirname(__FILE__),以確保程式不會出錯。

以上就是PHP獲取絕對路徑dirname(__FILE__)和__DIR__比較的詳細內容,更多請關注TW511.COM其它相關文章!