有没有办法在PHP中获取调用函数的名称?
在下面的代码中,我使用调用函数的名称作为事件名称的一部分。我想修改getEventName()函数,以便它可以自动确定调用方法的名称。有没有这样做的PHP函数?
class foo() {
public function bar() {
$eventName = $this->getEventName(__FUNCTION__);
// ... do something with the event name here
}
public function baz() {
$eventName = $this->getEventName(__FUNCTION__);
// ... do something with the event name here
}
protected function getEventName($functionName) {
return get_class($this) . '.' . $functionName;
}
}
答案 0 :(得分:1)
查看debug_backtrace()
的输出。
答案 1 :(得分:0)
如果你想知道调用你当前所用函数的函数,你可以定义类似的东西:
<?php
/**
* Returns the calling function through a backtrace
*/
function get_calling_function() {
// a function x has called a function y which called this
// see stackoverflow.com/questions/190421
$caller = debug_backtrace();
$caller = $caller[2];
$r = $caller['function'] . '()';
if (isset($caller['class'])) {
$r .= ' in ' . $caller['class'];
}
if (isset($caller['object'])) {
$r .= ' (' . get_class($caller['object']) . ')';
}
return $r;
}
?>