3 回答
TA贡献1900条经验 获得超5个赞
该debug_backtrace()
函数是了解这一点的唯一方法,如果你是懒惰的,那么你应该GetCallingMethodName()
自己编写代码的另一个原因。战斗懒惰!:d
TA贡献1824条经验 获得超5个赞
从PHP 5.4开始,你可以使用
$dbt=debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2);
$caller = isset($dbt[1]['function']) ? $dbt[1]['function'] : null;
这不会浪费内存,因为它忽略了参数并仅返回最后2个回溯堆栈条目,并且不会在此处生成通知作为其他答案。
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
)
)
- 3 回答
- 0 关注
- 3172 浏览
添加回答
举报