PHP版本升級後程式碼無法使用
php版本升級後,程式碼無法使用多是因為版本之間的差異造成的不相容,比如高版本的語法發生了改動,棄用了某些函數,都會造成程式執行錯誤,想要解決這些問題,只能一步步的偵錯程式,下面介紹下怎樣偵錯程式,讓程式碼相容我們的高版本的php吧。
1 列印輸出
使用echo、var_dump 、print_r等方法在需要偵錯地方進行列印輸出,通過輸出特定變數的值可以判斷程式執行是否正確。
2 使用debug_backtrace 函數列印呼叫棧資訊:
debug_print_backtrace();exit; #0 cli_rakuten->getOrders(1) #1 call_user_func_array(Array ([0] => cli_rakuten Object (),[1] => getOrders), Array ([0] => 1)) called at [/data/project/***/include/of/of.php:79] #2 of::cliDispatch(cli_rakuten, getOrders, 1, Array ([0] => 1)) called at [/data/project/***/cli.php:17]
3 使用xdebug偵錯程式碼
Xdebug是一個開放原始碼的PHP程式偵錯程式(即一個Debug工具),可以用來跟蹤,偵錯和分析PHP程式的執行狀況。
設定好phpstorm+xdebug後,可很方便的對程式碼進行斷點偵錯。
除了生成呼叫棧資訊外,xdebug還能生成效能分析報告,windows上可使用WinCacheGrind來檢視效能分析報告。
4 使用xhprof偵錯分析程式碼
XHProf是facebook 開發的一個測試php效能的擴充套件。
對於本地開發環境來說,進行效能分析xdebug是夠用了,但如果是線上環境的話,xdebug消耗較大,設定也不夠靈活,因此線上環境建議使用xhprof進行PHP效能追蹤及分析。
在程式碼中加入生成xhprof分析報告程式碼:
xhprof_enable( XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU, [ 'ignored_functions' => [ 'call_user_func', 'call_user_func_array' ] ]); //這裡是業務程式碼 //... $xhprofData = xhprof_disable(); require '/data/soft/xhprof/xhprof_lib/utils/xhprof_lib.php'; require '/data/soft/xhprof/xhprof_lib/utils/xhprof_runs.php'; $xhprofRuns = new XHProfRuns_Default(); $runId = $xhprofRuns->save_run($xhprofData, 'xhprof_test'); echo 'http://192.168.52.129:8888/xhprof_html/index.php?run=' . $runId . '&source=xhprof_test'.PHP_EOL;
5 根據php錯誤紀錄檔進行偵錯
log紀錄檔,通常是系統或軟體、應用的執行記錄。通過log的分析,可以方便使用者了解系統或軟體、應用的執行情況;如果你的應用log足夠豐富,也可以分析以往使用者的操作行為、型別喜好、地域分布或其他更多資訊;如果一個應用的log同時也分了多個級別,那麼可以很輕易地分析得到該應用的健康狀況,及時發現問題並快速定位、解決問題,補救損失。
php錯誤紀錄檔可在組態檔php.ini中設定:
log_errors = On error_log = /var/log/php-fpm/php_errors.log
查到了錯誤原因,我們就可以對程式做出相應的修改了。
以上就是PHP版本升級後程式碼無法使用的詳細內容,更多請關注TW511.COM其它相關文章!