小编典典

打印 PHP 调用堆栈

all

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

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


阅读 68

收藏
2022-04-21

共1个答案

小编典典

如果您想生成回溯,您正在寻找 debug_backtrace 和/或
debug_print_backtrace.

例如,第一个将为您提供一个像这样的数组 (引用手册)

array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

它们显然不会刷新 I/O 缓冲区,但您可以自己使用 flush 和/或
ob_flush.

(请参阅第一个的手册页以找出“和/或”的原因;-))

2022-04-21