Print PHP Call Stack

前端 未结 15 1662
清歌不尽
清歌不尽 2020-11-27 09:08

I\'m looking for a way to print the call stack in PHP.

Bonus points if the function flushes the IO buffer.

15条回答
  •  长情又很酷
    2020-11-27 09:34

    If you want to generate a backtrace, you are looking for debug_backtrace and/or debug_print_backtrace.


    The first one will, for instance, get you an array like this one (quoting the manual) :

    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"
      }
    }
    


    They will apparently not flush the I/O buffer, but you can do that yourself, with flush and/or ob_flush.

    (see the manual page of the first one to find out why the "and/or" ;-) )

提交回复
热议问题