如何在PHP中获取调用函数/方法的名称?

我知道函数debug_backtrace,但我正在寻找一些准备使用的函数实现GetCallingMethodName()吗?如果它也给了方法的类(如果它确实是一个方法),那将是完美的。



陪伴而非守候
浏览 3133回答 3
3回答

梵蒂冈之花

该debug_backtrace()函数是了解这一点的唯一方法,如果你是懒惰的,那么你应该GetCallingMethodName()自己编写代码的另一个原因。战斗懒惰!:d

沧海一幻觉

从PHP 5.4开始,你可以使用        $dbt=debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2);        $caller = isset($dbt[1]['function']) ? $dbt[1]['function'] : null;这不会浪费内存,因为它忽略了参数并仅返回最后2个回溯堆栈条目,并且不会在此处生成通知作为其他答案。

郎朗坤

您还可以使用php异常提供的信息,这是一个优雅的解决方案:function GetCallingMethodName(){    $ e = new Exception();    $ trace = $ e-> getTrace();    //位置0将是调用此函数的行,因此我们忽略它    $ last_call = $ trace [1];    的print_r($ last_call);}function firstCall($ a,$ b){    theCall($ a,$ b);}function theCall($ a,$ b){    GetCallingMethodName();}firstCall('lucia','php');你得到这个......(瞧!)排列(    [file] => /home/lufigueroa/Desktop/test.php    [line] => 12    [function] => theCall    [args] =>数组        (            [0] =>露西亚            [1] => php        ))
打开App,查看更多内容
随时随地看视频慕课网APP