__FUNCTION__ 返回 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。
__METHOD__ 返回類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。 php
他們有什麼不一樣之處呢?作個實驗,一測便知.函數
1 <?php 2 //定義函數 3 function outFunction() 4 { 5 echo '__METHOD__ =>'.__METHOD__; 6 echo '<br>'; 7 echo '__FUNCTION__ =>'.__FUNCTION__; 8 } 9 10 //定義類 11 class Test 12 { 13 static function gongwen() 14 { 15 echo '__METHOD__ =>'.__METHOD__; 16 echo '<br>'; 17 echo '__FUNCTION__ =>'.__FUNCTION__; 18 } 19 20 static function bestphper() 21 { 22 function innerFunction() 23 { 24 echo '__METHOD__ =>'.__METHOD__; 25 echo '<br>'; 26 echo '__FUNCTION__ =>'.__FUNCTION__; 27 } 28 29 innerFunction(); 30 } 31 } 32 33 //測試 34 Test::gongwen(); 35 echo '<hr>'; 36 Test::bestphper(); 37 echo '<hr>'; 38 outFunction(); 39 ?>
結果:測試
結論: spa
狀況一:
__FUNCTION__與__METHOD__ 同處於「類外」的函數體中,他們的返回值是同樣同樣滴.
狀況二:
__FUNCTION__與__METHOD__ 同處於「類內」的函數體中,__METHOD__ 比 __FUNCTION__前面多了個「類名::」
code