首页 > 解决方案 > PHP命令返回函数堆栈

问题描述

我以前用过它,但是今天,经过几次失败的搜索后,我一直找不到我要找的东西。

一个 PHP 命令,它将返回调用函数的名称,以及调用它的函数,5 级左右。

任何帮助将不胜感激!

标签: phpdebugging

解决方案


我认为您正在寻找 debug_print_backtrace。从文档

debug_print_backtrace() 打印 PHP 回溯。它打印函数调用、包含/必需的文件和 eval()ed 的东西。

但是,如果您希望数据不立即打印而是返回,您可以使用 debug_backtrace(),将其保存到 var 并仅使用 ['function'] 索引。当然,此功能在其文档中也有更好的描述。

例如,如果您在通过 try catch 捕获异常后想要堆栈跟踪,您也可以使用以下命令:

try{
    //stuff
}catch(\Exception $e){
     $stackTrace = $e->getStackTraceAsString();
     //do whatever you want to with your stack trace
}

您也可以使用创建一个新异常

$e = new \Exception;

并通过以下方式获取堆栈跟踪

$e->getTraceAsString();

该功能还在文档中进一步解释。


推荐阅读