魔術(shù)常量通常是用來(lái)確定代碼中的輸出位置灶平,所有的魔術(shù)常量都是為了達(dá)到這種目的蠢护。特別是在程序需要打上log日志的時(shí)候雅宾,魔術(shù)變量變得尤其重要。下面介紹常見(jiàn)的七種魔術(shù)常量葵硕。
__CLASS__:指常量所指向的類的名稱秀又。該常量通常指類被定義的名稱,而不是實(shí)例化時(shí)的名稱贬芥。例如:在類的繼承中子類和父類的的構(gòu)造方法中都調(diào)用了__CLASS__,那個(gè)__CLASS__表示的還是在類中類本身的名稱吐辙。
__FILE__:指常量所指向文件的文件名稱。
__LINE__:通常和__FILE__聯(lián)合使用蘸劈,在用來(lái)輸出所在代碼中的位置行昏苏。例如:error_log('log打在文件'.__FILE__.'中的第'.__LINE__.'行');
注意:__FILE__和__LINE__兩者至于當(dāng)前正在執(zhí)行的文件有關(guān),而不需要去考慮別的文件是否包含或者依賴該文件威沫。
__DIR__:作用于函數(shù)dirname(__FILE__)比較類似贤惯,返回的是文件所在位置的絕對(duì)目錄。在程序中棒掠,使用絕對(duì)路徑比使用相對(duì)路徑運(yùn)行速度要快得多孵构,尤其是當(dāng)文件中包含腳本程序時(shí)。
__FUNCTION__和__METHOD__:通常利用這兩個(gè)魔術(shù)常量可以得到函數(shù)名或方法名烟很,情況運(yùn)行時(shí)颈墅,應(yīng)盡可能地在程序是中使用這些魔術(shù)常量而不是對(duì)函數(shù)名稱使用硬編碼。比如像下面:int a=2,b=2;硬編碼:if(a==2) return false;非硬編碼 if(a==b) return true;?
__NAMESPACE__:當(dāng)前的命名空間雾袱。
如果要對(duì)程序進(jìn)行調(diào)試恤筛,學(xué)會(huì)使用一些常見(jiàn)的魔術(shù)常量是最基本的。