【发布时间】:2013-06-24 15:33:39
【问题描述】:
我正在查看一些 PHP 代码,发现一些对 PHP 常量 __METHOD__ 的引用。我阅读了 PHP 文档,但它说的是
类方法名。 (在 PHP 5.0.0 中添加)方法名称是 按声明返回(区分大小写)。
这对我来说不是很清楚。谁能举个例子或更详细地描述一下?
【问题讨论】:
我正在查看一些 PHP 代码,发现一些对 PHP 常量 __METHOD__ 的引用。我阅读了 PHP 文档,但它说的是
类方法名。 (在 PHP 5.0.0 中添加)方法名称是 按声明返回(区分大小写)。
这对我来说不是很清楚。谁能举个例子或更详细地描述一下?
【问题讨论】:
__METHOD__ 在调用该常量时返回您所在的当前类和方法的名称。
http://php.net/manual/en/language.constants.predefined.php
__FUNCTION__ 只会返回函数名。
【讨论】:
echo __METHOD__."in".__FILE__." called";
您可以将其用于调试或记录目的。
【讨论】:
在这个常量里面你有一个你正在执行的函数的名字。
试试看:
die(__METHOD__);
在你运行的任何函数中。
【讨论】:
die(__METHOD__) 所做的只是说“这里发生了一些事情”,而不是 what 发生了。
die 做了两件事:(1)打印它的参数,(2)停止脚本。顺便说一句,如果您关心单元测试,那么 (2) 会变得非常烦人。你知道我有多少次让 PHPUnit 启动和停止,因为一些 5 级深的代码决定 die() 会很有趣而不是抛出异常?
echo __METHOD__;更好的呢?
这是一个神奇的常量,它返回函数/方法的名称以及该函数所属的类名。
__METHOD__和__FUNCTION__的区别在于前者既返回函数名又返回类名,而后者只给出函数名
【讨论】: