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

  • 相关阅读:
    装饰模式
    You can't specify target table 'a' for update in FROM clause
    Spring事务知识点
    JAVA中的volatile关键字
    验证HashSet和HashMap不是线程安全
    ZYNQ7000 通过FPGA Manager加载比特流
    verilog中可综合的task使用
    verilog条件编译
    Vivado debug异常现象
    Matlab相关函数使用
  • 原文地址:https://www.cnblogs.com/cloak/p/4991526.html
Copyright © 2020-2023  润新知