打印PHP堆栈信息
//调用堆栈函数,查找调用函数的源头,方便调试 function print_stack_trace() { $array =debug_backtrace(); //print_r($array);//信息很齐全 unset($array[0]); foreach($array as $row) { $html .=$row['file'].':'.$row['line'].'行,调用方法:'.$row['function']."<p>"; } return $html; }
我在我的数据库的核心查询函数里面调用这个方法,打印结果如下: D:\wamp\www\meilele\includes\cls_mysql.php:471行,调用方法:query D:\wamp\www\meilele\includes\cls_mysql.php:507行,调用方法:getAll D:\wamp\www\meilele\includes\lib_common.php:732行,调用方法:getAllCached D:\wamp\www\meilele\includes\init.php:113行,调用方法:load_config D:\wamp\www\meilele\index.php:4行,调用方法:include_once 一目了然,一直找到了入口,太强悍了。以后调试又多了一种办法 或者用下面的方法: [php] view plain copy $e = new Exception; var_dump($e->getTraceAsString());
输出变量值
var_dump($a); //变量的详细信息,有类型信息 print_r($a); //变量的简单形式,输出的value值没有类型 exit($a); //退出当前文件,并输出变量 //若$a是数组,则可以格式化输出,输出的value值没有类型 echo '<pre>'; print_r($a); //格式化输出调试信息 echo "<pre>"//在输出前加上该句 var_dump($a); exit; echo "<br>" //方便测试 //已经安装php环境,可以直接在中断中运行,比如下面 php -r "var_dump(urldecode('a+b%2b'));"
如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/