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__前面多了个“类名::

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值