PHP 除錯技術總結

2021-08-25 12:42:57 字數 1949 閱讀 8083

1: 內建 api 輸出除錯

我們除了用echo,print,print_r, var_dump, var_export

1-1. debug_zval_dump 輸出結果跟 var_dump 類似,唯一增加的乙個值是 refcount,就是記錄乙個變數被引用了多少次,這是 php 的 copy on write (寫時複製) 的機制的乙個重要特點。

1-2. debug_print_backtrace 可以讓我們檢視整個程式的呼叫棧,用來檢視瞬間函式呼叫棧,方便在出錯時檢視執行上下文.

2:錯誤控制和日誌記錄除錯

2-1. php.ini 配置中,跟錯誤相關的選項主要:error_reporting、display_errors、log_errors、error_log 等幾個,這些選項在一般語法級別的除錯是很有幫助的。

3.錯誤丟擲和處理

3-1. 錯誤丟擲和處理主要是說我們在程式中,能夠自己觸發錯誤,或者是自己截獲處理錯誤,類似於物件導向程式設計裡的異常處理 throw 丟擲異常,catch 截獲異常乙個思路。

trigger_error、set_error_handler、set_exception_handler 這三個 api 主要就是處理錯誤丟擲和處理內建函式。

4.firephp 除錯

4-1.firephp 是乙個附加在 firebug 上面的外掛程式,用來除錯 php,操作過程很簡單。在 php 端使用 firephp

提供的 php 日誌記錄類庫來輸出除錯資訊, 在瀏覽器端使用 firebug + firephp 來接收檢視輸出的除錯信

息,這些除錯資訊會直接附加在返回的 http 頭資訊裡, 這些資訊不會被瀏覽器直接顯示, 只會在 firephp 獲

取顯示,有效的達到了除錯和頁面顯示都不衝突的問題。(必須使用 firefox 瀏覽器)

5.ide 除錯

5-1.vim,zend studio,eclipse,netbeans中除錯功能

6.php 效能除錯技術

6-1. 基本上使用 microtime() 這種計算時間的函式就能夠來監測時間,如果使用 time() 之類的函式,統計

時間粒度就太粗了。

7.使用 xdebug 進行效能分析

7-1 使用簡單的時間統計,第乙個需要在**裡增加時間點監控,比較麻煩,有時候我們需要看一段**裡那些函式呼叫是比較消耗時間的,單純的使用時間控制就比較麻煩,這個時候,就可以使用 xdebug 這種性

能分析工具了。

8.apd(advanced php debugger)

8-1.apd 是 advanced php debugger,即高階 php 偵錯程式。是用來給 php **提供規劃與糾錯的能力,

以及提供了顯示整個堆疊追蹤的能力。apd 支援互動式糾錯,但預設是將資料寫入跟蹤檔案。它還提供了

基於事件的日誌, 因此不同級別的資訊 (包括函式呼叫, 引數傳遞,計時等)可以對個別的指令碼開啟或關閉。

9.使用 xhprof 進行效能分析

一般情況下來說,大家都是使用 xdebug,但是 xdebug 太麻煩,需要各種配置,還有複雜的檢視生成

的資料檔案,並且 xdebug 無法再線上使用,因為特別占用 cpu 資源,所以就誕生了 xhprof。xhprof 是

facebook 開源出來的乙個效能測試工具,它比較輕量級,它執行更輕便快速,輸出的資料更容易檢視。

10.php 單元測試技術

phpunit 是乙個輕量級的 php 測試框架。它是在 php5 下面對 junit3 系列版本的完整移植,是 xunit

測試框架家族的一員(它們都基於模式先鋒 kent beck 的設計)。

PHP除錯技術

php 除錯 echo 和echo print r method 指令碼js就是alert方式,或console.log。console.log 原先是 firefox 的 專利 嚴格說是安裝了 firebugs 之後的 firefox 所獨有的除錯 絕招 這一招,ie8 學會了,不過用起來比 fi...

php除錯總結

列印php堆疊資訊 呼叫堆疊函式,查詢呼叫函式的源頭,方便除錯 function print stack trace return html 我在我的資料庫的核心查詢函式裡面呼叫這個方法,列印結果如下 d wamp www meilele includes cls mysql.php 471行,呼叫...

php除錯技術文件

參考資料 php除錯技術手冊 主要是針對目前流行的各種php除錯技術的乙個實驗和總結,所有除錯方法都是在容易部署實現的基礎來進行講解,也希望對php開發者有乙個系統的除錯方法的歸納和使用的幫助。目錄1 內建api輸出除錯 1.1 基本除錯api 1.1.1 echo print 1.1.2 prin...