【问题标题】:Can you give an example of how to use PHP __method__?你能举例说明如何使用 PHP __method__ 吗?
【发布时间】:2013-06-24 15:33:39
【问题描述】:

我正在查看一些 PHP 代码,发现一些对 PHP 常量 __METHOD__ 的引用。我阅读了 PHP 文档,但它说的是

类方法名。 (在 PHP 5.0.0 中添加)方法名称是 按声明返回(区分大小写)。

这对我来说不是很清楚。谁能举个例子或更详细地描述一下?

【问题讨论】:

    标签: php class methods


    【解决方案1】:

    __METHOD__ 在调用该常量时返回您所在的当前类和方法的名称。

    http://php.net/manual/en/language.constants.predefined.php

    __FUNCTION__ 只会返回函数名。

    【讨论】:

    • 感谢@minitech,由于降价语法,我的答案搞砸了;)该死的。
    • 感谢您澄清这一点!
    【解决方案2】:
    echo __METHOD__."in".__FILE__." called";
    

    您可以将其用于调试或记录目的。

    【讨论】:

      【解决方案3】:

      在这个常量里面你有一个你正在执行的函数的名字。

      试试看:

      die(__METHOD__);
      

      在你运行的任何函数中。

      【讨论】:

      • 如果你要死了,抛出异常是一个更好的主意。您可以指定一条消息获取堆栈跟踪。 die(__METHOD__) 所做的只是说“这里发生了一些事情”,而不是 what 发生了。
      • 这不是您需要尝试知道它的作用的东西。文档清楚地表明,die 做了两件事:(1)打印它的参数,(2)停止脚本。顺便说一句,如果您关心单元测试,那么 (2) 会变得非常烦人。你知道我有多少次让 PHPUnit 启动和停止,因为一些 5 级深的代码决定 die() 会很有趣而不是抛出异常?
      • 是的,所以把死(METHOD);在您的代码中,您将最好地了解 METHOD 常量中的内容,这就是问题所在?对不对?
      • 有什么比echo __METHOD__;更好的呢?
      • 你不会总是看到你的回声。例如,因为打开了样式或输出缓冲。 Die 总是会告诉你结果。现在你可以撤消你的“-1”吗?谢谢。
      【解决方案4】:

      这是一个神奇的常量,它返回函数/方法的名称以及该函数所属的类名。

      __METHOD____FUNCTION__的区别在于前者既返回函数名又返回类名,而后者只给出函数名

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-30
        • 2018-02-19
        • 2013-05-17
        相关资源
        最近更新 更多