php 打印error trace
对于php的Exception,可以通过getTraceAsString获得错误栈。
而对于error则应该如下:
function x() $x = debug_backtrace(); //remove stack of this function array_shift($x); $i = 0; $xstr = ''; foreach ($trace as $x) { //TODO need check exists args $args = $x['args']; if (!$args) { $argstr = ''; } else { $argstr = ''; $first = true; foreach ($args as $arg) { if (!$first) { $argstr .= ','; } $first = false; if (is_object($arg)) { $argstr .= 'Object[' . get_class($arg) . ']'; } elseif (is_array($arg)) { $argstr .= 'Array'; } else { $argstr .= $arg; } } } $xstr .= "[#$i] {$x['file']}({$x['line']}) {$x['function']} ($argstr)" . PHP_EOL; $i++; } return $xstr; }
参见:
http://jarofgreen.co.uk/2011/02/more-php-error-handling-tips/