2016年10月12日 星期三

php Magic constants 介紹

        一般在專案裡面使用的路徑幾乎都是相對路徑,但如果要在一個需要絕對路徑的地方也能通用的話(ex. CentOS webmin 設排程),每次都要改來改去很麻煩,查了一下發現在官方文件裡面有一個「 魔法常數」,裡頭的「 __DIR__ 」可以直接秀出當前所在位置的絕對路徑,而其他還有一些常數,下面一起做介紹:

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


        有時候看官方文件的時候,會不經意地挖到寶。


參考資料:

沒有留言:

張貼留言