php沒有多線程、同步等複雜的概念,大多由函數和類組成,數據類型和語法比較簡單,利用其豐富的內置函數便可實現大部分功能測試,可是,有時也須要比較比較專業的調試方法及工具迅速捕捉到異常。php
(1)debug函數 在實際應用中,除了應用echo、die、var_dump輸出當前變量值外,還須要輸出一些額外的信息,如當前代碼所在的函數名稱。linux
先來看三個有關調試的函數: func_num_args() 這個函數返回的是當前函數的參數數量 返回的是數字 **func_get_arg()**函數返回的是指定位置的參數的值 **func_get_args()**這個函數返回的是包含當前函數全部參數的一個數組 **PHP_EOL PHP中能夠用PHP_EOL來替代換行,以提升代碼的源代碼級可移植性 相似經常使用的還有 DIRECTORY_SEPARATOR 能夠用函數get_defined_constants()來獲取全部PHP常量web
<?php echo PHP_EOL; //windows平臺至關於 echo "\r\n"; //unix\linux平臺至關於 echo "\n"; //mac平臺至關於 echo "\r";
<?php //get_defined_constants()返回全部常量數組 print_r(get_defined_constants());
###debug函數windows
public function debug(){ $numargs = func_num_args(); // 參數個數 $arg_list = func_get_arg(); // 獲取參數 for($i = 0; $i < $numargs; $i ++) { echo "第${$i}個變量的值爲:",$arg_list[$i],PHP_EOL; } echo '當前所處的文件名爲:'.__FILE__,PHP_EOL; }
###引用上邊的調試函數數組
function mytest($a, $b){ $sum = $a + $b; debug($a, $b); return $sum; } $ret = mytest(10,5); echo $ret;
##斷點調試與變量跟蹤工具Xdebug多線程
webGrind facebook開源的XHProf性能分析函數