PHP程序如何debug?


https://blog.csdn.net/Time888/article/details/72357073?locationNum=13&fps=1

一、檢查是否有語法錯誤

php -l test.php 
  • 1

二、基本調試

基本調試 API:

var_dump($var);print_r($var);echo $var;
  • 1

基本的配置:

display_errors、log_errors、error_reporting、error_log
  • 1

備注:有時候,會關閉報錯,需要手動開啟。

常用代碼:

ini_set("display_errors","On"); error_reporting(E_ALL);
  • 1
  • 2

三、利用錯誤收集函數

參考手冊:http://php.net/manual/zh/book.errorfunc.php

  • debug_backtrace — 產生一條回溯跟蹤(backtrace)
  • debug_print_backtrace — 打印一條回溯。
  • error_clear_last — 清除最近一次錯誤
  • error_get_last — 獲取最后發生的錯誤
  • error_log — 發送錯誤信息到某個地方
  • error_reporting — 設置應該報告何種 PHP 錯誤
  • restore_error_handler — 還原之前的錯誤處理函數
  • restore_exception_handler — 恢復之前定義過的異常處理函數。
  • set_error_handler — 設置用戶自定義的錯誤處理函數
  • set_exception_handler — 設置用戶自定義的異常處理函數
  • trigger_error — 產生一個用戶級別的 error/warning/notice 信息
  • user_error — trigger_error 的別名

示例代碼:

register_shutdown_function('my_shutdown_handler'); function my_shutdown_handler() { $error = error_get_last(); if ($error) { try{ //發送郵件 } catch(Exception $e) { } } return false; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

三、記log

你認為可能出錯的地方

file_put_contents('log.text', var_export($var, 1), FILE_APPEND);
  • 1

另外也需要配置error_log

一般是查看apache的錯誤日志。命令行執行的錯誤,並不能收集。

四、IDE 調試

在編寫時就能發現一些基本的語法錯誤。

五、使用工具:xdebug

xdebug_start_trace(); 
/* 業務代碼 */ 
xdebug_stop_trace();

參考: 
1. xdebug參考: 
https://www.ibm.com/developerworks/cn/opensource/os-php-xdebug/index.html 
2. PhpStorm之Xdebug斷點調試: 
http://www.jianshu.com/p/90a724ff85f1 
3. PHP 調試技術手冊 
http://blog.xiayf.cn/assets/uploads/files/PHP-Debug-Manual-public.pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM