我正在寻找一种在PHP中打印调用堆栈的方法。

如果函数刷新IO缓冲区,则加分。


当前回答

请看看这个utils类,可能会有帮助:

用法:

<?php
/* first caller */
 Who::callme();

/* list the entire list of calls */
Who::followme();

源类:https://github.com/augustowebd/utils/blob/master/Who.php

其他回答

debug_backtrace ()

看到debug_print_backtrace。我想如果你想的话,你可以之后再喊冲水。

Walltearer的解决方案非常出色,特别是如果包含在'pre'标签中:

<pre>
<?php debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); ?>
</pre>

-它将调用放在单独的行上,整齐地编号

您可能想查看debug_backtrace,或者debug_print_backtrace。

如果一个人只是对文件感兴趣,你可以使用以下:

print_r (array_column debug_backtrace()、“文件”);

同样地,您可以用不同的键替换文件,只是为了查看该数据。