Sil*_*rom 372

准确的方法是使用__FUNCTION__ 预定义的魔术常量.

例:

class Test {
    function MethodA(){
        echo __FUNCTION__;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:MethodA.

  • __FUNCTION__也适用于非类函数。在PHP 7.0.8上试用。 (6认同)
  • @KiranReddy也有一个魔术常数:`__CLASS__`。或者你可以做`get_class($ this)`。 (2认同)

Pat*_*and 96

您可以使用魔术常量 __METHOD__(包括类名)或__FUNCTION__(只是函数名),具体取决于它是方法还是函数... =)

  • __METHOD__包含类名,__ FUNCTION__就是这样.后者在班级方法中同样可用. (42认同)
  • +1,`__METHOD__`比`__FUNCTION__`更具体. (6认同)
  • 确实如此.但是获取MyClass :: methodName而不是methodName通常很有用. (3认同)

Kev*_*man 16

如果您使用的是PHP 5,可以试试这个:

function a() {
    $trace = debug_backtrace();
    echo $trace[0]["function"];
}
Run Code Online (Sandbox Code Playgroud)

  • 这是不可思议的资源密集型.使用__FUNCTION__或__METHOD__效率更高.如果您需要的不仅仅是函数名称,那么debug_backtrace()非常棒. (13认同)
  • @tazo todua.你能给我举个例子吗? (5认同)
  • 为此目的使用debug_backtrace()是一种不好的做法 (2认同)