打印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());
輸出變量值html
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'));"