待整理(文章)

[PHP基础学习笔记] 面向对象编程:魔术变量

字号+ 作者:hanyufeng 来源: 2018-01-13 21:44:00 我要评论( ) 阅读:

__METHOD__与__FUNCTION__ 等...

PHP中的 __FUNCTION__ 与 __METHOD__  等常量前后都有两个下划线(__),是系统预定义的内置常量,但因为返回的值随具体位置而改变,所以被称为魔术变量


__FUNCTION__:在类中仅返回所在函数/方法的名称,但在命名空间中有所不同(例子如下)。

__METHOD__:返回命名空间、类、函数/方法的名称。


例如:

namespace DemoNamespace{
    function function1(){
        return __FUNCTION__.'()'.'<br>'.__METHOD__.'()';
    }
    echo function1();
    echo '<br>';
    class DemoClass
    {
        public static function demo()
        {
            return __FUNCTION__.'()'.'<br>'.__METHOD__.'()';
        }
    }
    echo DemoClass::demo();
}

运行效果:

DemoNamespace\function1()
DemoNamespace\function1()
demo()
DemoNamespace\DemoClass::demo()

命名空间的“直属”函数,使用 __FUNCTION__ 与 __METHOD__ 返回的结果是一样的,都是:

命名空间\函数名

类中的函数,使用 __FUNCTION__ 返回的是函数名称本身,使用 __METHOD__ 返回的是:

命名空间\类::方法名


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。