/** * debuging('dtrace'); //查看调用栈 * debuging($var); //打印$var(var_dump) * debuging($var, 'php'); //打印$var(var_export) * debuging($var, $echo, 2); //以json格式输出$var * debuging(__line__.__class);//常用于大量if语句体定位, 或者寻找程序结束点 */function debuging($var = '', $echo = '', $die = false, $force = false) { static $clear; if (0 && $clear === null) { ob_end_flush (); $clear = true; } static $d; if (0 && empty ( $d )) { $d = 1; debuging ( 'dtrace' ); } $force && $_get ['debug'] = 1; if (isset ( $_get ['debug'] )) { if ('dtrace' === $var) { dtrace ( $die ); } elseif ($die === 2) { header ( 'content-type: application/json' ); echo json_encode ( $var ); } else { echo \n; if ($echo) { echo $echo:; } if ($echo === 'php') var_export ( $var ); else var_dump ( $var ); echo
\n; } $die && die (); }}function dtrace($die = false) { try { static $lasttime; $lasttime or $lasttime = $_server ['request_time']; throw new exception (); } catch ( exception $e ) { $currtime = microtime ( true ); $totaltime = $currtime - $_server ['request_time']; $exectime = $currtime - $lasttime; $lasttime = $currtime; echo \n\n; echo exectime: $exectime s.
\n; echo totaltime: $totaltime s.
\n; echo trace:
\n; // echo $e->gettraceasstring() ; // debug_print_backtrace();$die && die; debuging ( $e->gettraceasstring (), 'php', $die ); }}for($i=0;$i<100000;$i++) { $a +=$i;}dtrace();