***php调试总结

 

打印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'));"

 

posted @ 2017-10-13 15:49  谦信君  阅读(...)  评论(... 编辑 收藏