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__ 返回的是:
命名空间\类::方法名
精彩导读
热门资讯
关注我们