一般在專案裡面使用的路徑幾乎都是相對路徑,但如果要在一個需要絕對路徑的地方也能通用的話(ex. CentOS webmin 設排程),每次都要改來改去很麻煩,查了一下發現在官方文件裡面有一個「 魔法常數」,裡頭的「 __DIR__ 」可以直接秀出當前所在位置的絕對路徑,而其他還有一些常數,下面一起做介紹:
結果為:
__LINE__: 75
__FILE__: /Users/Hong/php/test/index.php
__DIR__: /Users/Hong/php/test
__FUNCTION__: allConstant
__METHOD__: Magic\MagicConstants::allConstant
__NAMESPACE__: Magic
__TRAIT__: Magic\magicTrait
namespace Magic; trait magicTrait { function traitfunction() { // 顯示 namespace/trait echo "__TRAIT__: " . __TRAIT__, PHP_EOL; } } class MagicConstants { use magicTrait; function allConstant() { // 顯示目前呼叫__LINE__的所在行數 echo "__LINE__: " . __LINE__, PHP_EOL; // 顯示目前檔案的絕對路徑 echo "__FILE__: " . __FILE__, PHP_EOL; // 顯示目前檔案所在的目錄的絕對路徑 echo "__DIR__: " . __DIR__, PHP_EOL; // 顯示所在的function echo "__FUNCTION__: " . __FUNCTION__, PHP_EOL; // 不但顯示所在的function,namespace和class也會顯示 echo "__METHOD__: " . __METHOD__, PHP_EOL; // 顯示namespace echo "__NAMESPACE__: " . __NAMESPACE__, PHP_EOL; } } $result = new MagicConstants(); $result->allConstant(); $result->traitfunction();
結果為:
__LINE__: 75
__FILE__: /Users/Hong/php/test/index.php
__DIR__: /Users/Hong/php/test
__FUNCTION__: allConstant
__METHOD__: Magic\MagicConstants::allConstant
__NAMESPACE__: Magic
__TRAIT__: Magic\magicTrait
有時候看官方文件的時候,會不經意地挖到寶。
參考資料:
沒有留言:
張貼留言