本文實例講述了PHP中魔術變量__METHOD__與__FUNCTION__的區別,分享給大家供大家參考。具體分析如下:
__METHOD__類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
__FUNCTION__函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
文檔解釋都是說返回函數(方法)的名字。區別在於:
__FUNCTION__只是返回方法的名字;
__METHOD__返回類的名字和方法的名字。
<?php class Test{ public function doit(){ echo __FUNCTION__; } public function doitAgain(){ echo __METHOD__; } } $obj = new Test(); $obj->doit(); echo '<br>'; $obj->doitAgain(); ?>
輸出結果為:
doit Test::doitAgain
希望本文所述對大家的PHP程序設計有所幫助。
__LINE__ 文件中的當前行號。
__FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析後的絕對路徑),而在此之前的版本有時會包含一個相對路徑。
__DIR__ 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價於 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜槓。(PHP 5.3.0中新增) =
__FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
__NAMESPACE__ 當前命名空間的名稱(大小寫敏感)。這個常量是在編譯時定義的。
魔術變量就是指那些根據不同環境有不同的取值
比如
__FILE__
就是一個典型的魔術變量,當它出現在a.php文件裡時它的值就是a.php的具體路徑,出現在b.php文件裡就是b.php的具體路徑
其他的一些魔術變量還有__FUNCTION__, __CLASS__
總之這些變量的值往往不是固定的,變來變去的,很神奇,像魔術一樣,故叫做魔術變量