PHP中的函数名称不能使用Magic Constants字符串

时间:2012-10-06 07:44:21

标签: php function syntax constants syntax-error

我最近注意到__METHOD____CLASS__在扩展类时没有返回正确的名称。当我为替代方法编写方法并尝试使用名称__METHOD__时,我收到以下错误。

  

解析错误:语法错误,意外T_METHOD_C,期待T_STRING

$myclass = new myclass();
echo $myclass->__METHOD__() . '<br />';

class myclass
{
    function __METHOD__() {
        return get_class($this) . '::' . __FUNCTION__;
        // return __METHOD__;
    }
}

似乎PHP不允许在函数/方法名称中使用魔术常量。我找不到有关此限制的官方文档。我在哪里可以找到它?

感谢您提供的信息。

2 个答案:

答案 0 :(得分:0)

__METHOD__ 被称为魔术常量,这意味着它可以只是打印而不是由用户修改。您也不能将它用作函数名。这不是限制。这就是方法,意味着使用魔术常量,主要用于调试。

php.net页面 - Magic constants

同时检查variable functions。语言结构不能用作变量函数名称。

答案 1 :(得分:-1)

显然,魔术常量很特殊 - 它们比用户定义的常量有更多的限制。它们更像是语言关键词,而不是常数。

它似乎没有在文档中说出来,但它在经验上是正确的。