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 '
'; 7 echo '__FUNCTION__ =>'.__FUNCTION__; 8 } 9 10 //定义类 11 class Test 12 { 13 static function gongwen() 14 { 15 echo '__METHOD__ =>'.__METHOD__; 16 echo '
'; 17 echo '__FUNCTION__ =>'.__FUNCTION__; 18 } 19 20 static function bestphper() 21 { 22 function innerFunction() 23 { 24 echo '__METHOD__ =>'.__METHOD__; 25 echo '
'; 26 echo '__FUNCTION__ =>'.__FUNCTION__; 27 } 28 29 innerFunction(); 30 } 31 } 32 33 //测试 34 Test::gongwen(); 35 echo '
'; 36 Test::bestphper(); 37 echo '
'; 38 outFunction(); 39 ?>

结果:

PHP 魔术常量__FUNCTION__与__METHOD__的区别_第1张图片

结论:

情况一:
    __FUNCTION__与__METHOD__ 同处于“类外”的函数体中,他们的返回值是一样一样滴.
情况二:
    __FUNCTION__与__METHOD__ 同处于“类内”的函数体中,__METHOD__ 比 __FUNCTION__前面多了个“类名::

 

转载于:https://www.cnblogs.com/cloak/p/4991526.html

你可能感兴趣的:(PHP 魔术常量__FUNCTION__与__METHOD__的区别)