zoukankan      html  css  js  c++  java
  • 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__前面多了个“类名::

  • 相关阅读:
    模拟光照中的凹凸纹理原理和应用
    Visual Studio 2010 SP1正式开放下载
    同桌的你网工版
    [转载]同桌的你程序员版
    学习计划:SSIS
    基于Java的HTML解析器
    初次使用NHibernate遇到的问题
    .NET下开源CMS系统汇总
    MyEclipse、Tomcat启动项目报错
    VBA 分文件夹 分excel
  • 原文地址:https://www.cnblogs.com/cloak/p/4991526.html
Copyright © 2011-2022 走看看