为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
陪伴而非守候 2019-09-19 15:32:25
我知道函数debug_backtrace,但我正在寻找一些准备使用的函数实现GetCallingMethodName()吗?如果它也给了方法的类(如果它确实是一个方法),那将是完美的。
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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


查看完整回答
反对 回复 2019-09-19
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

从PHP 5.4开始,你可以使用


        $dbt=debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2);

        $caller = isset($dbt[1]['function']) ? $dbt[1]['function'] : null;

这不会浪费内存,因为它忽略了参数并仅返回最后2个回溯堆栈条目,并且不会在此处生成通知作为其他答案。


查看完整回答
反对 回复 2019-09-19
?
郎朗坤

TA贡献1921条经验 获得超9个赞

您还可以使用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

        )



查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 3122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信