我正在寻找一种在 PHP 中打印调用堆栈的方法。
如果函数刷新 IO 缓冲区,则加分。
如果您想生成回溯,您正在寻找 debug_backtrace 和/或 debug_print_backtrace.
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.
flush
ob_flush
(请参阅第一个的手册页以找出“和/或”的原因;-))