在PHP中获取调用方函数的名称?

php
2022-08-30 06:45:17

是否有PHP函数来找出给定函数中调用方函数的名称?


答案 1

请参阅debug_backtrace - 这可以跟踪您的调用堆栈一直到顶部。

以下是获取呼叫者的方式:

$trace = debug_backtrace();
$caller = $trace[1];

echo "Called by {$caller['function']}";
if (isset($caller['class']))
    echo " in {$caller['class']}";

答案 2

Xdebug提供了一些不错的功能。

<?php
  Class MyClass
  {
    function __construct(){
        $this->callee();
    }
    function callee() {
        echo sprintf("callee() called @ %s: %s from %s::%s",
            xdebug_call_file(),
            xdebug_call_line(),
            xdebug_call_class(),
            xdebug_call_function()
        );
    }
  }
  $rollDebug = new MyClass();
?>

将返回跟踪

callee() called @ /var/www/xd.php: 16 from MyClass::__construct

要在 ubuntu 上安装 Xdebug,最好的方法是

sudo aptitude install php5-xdebug

您可能需要先安装 php5-dev

sudo aptitude install php5-dev

更多信息


推荐