我們都知道,要獲取當前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__比較的詳細內容,更多請關注TW511.COM其它相關文章!