PHP 魔术常量__FUNCTION__与__METHOD__的区别

FUNCTION 返回 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
METHOD 返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

他们有什么不同之处呢?做个实验,一测便知.

<?php //定义函数 function outFunction() { echo '__METHOD__ =>'.__METHOD__; echo '
'; echo '__FUNCTION__ =>'.__FUNCTION__; } //定义类 class Test { static function gongwen() { echo '__METHOD__ =>'.__METHOD__; echo '
'; echo '__FUNCTION__ =>'.__FUNCTION__; } static function bestphper() { function innerFunction() { echo '__METHOD__ =>'.__METHOD__; echo '
'; echo '__FUNCTION__ =>'.__FUNCTION__; } innerFunction(); } } //测试 Test::gongwen(); echo '
'; Test::bestphper(); echo '
'; outFunction(); ?>

结论:

情况一:
FUNCTION__与__METHOD 同处于“类外”的函数体中,他们的返回值是一样一样滴.
情况二:
FUNCTION__与__METHOD 同处于“类内”的函数体中,METHOD 比 __FUNCTION__前面多了个“类名::”

猜你喜欢

转载自blog.csdn.net/weixin_36691991/article/details/88608151