PHP 魔術常量__FUNCTION__與__METHOD__的區別


__FUNCTION__ 返回 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。   
__METHOD__   返回類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。

他們有什么不同之處呢?做個實驗,一測便知.

 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 ?> 

結果:

結論:

情況一:
    __FUNCTION__與__METHOD__ 同處於“類外”的函數體中,他們的返回值是一樣一樣滴.
情況二:
    __FUNCTION__與__METHOD__ 同處於“類內”的函數體中,__METHOD__ 比 __FUNCTION__前面多了個“類名::

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM