《PHP學習入門之PHP錯誤處理》要點:
本文介紹了PHP學習入門之PHP錯誤處理,希望對您有用。如果有疑問,可以聯系我們。
PHP語言語法和C語言相似,有C語言基礎的學習起來難度應該不大.在調試PHP代碼時,你是否有過一臉悶逼的看著白屏而不知所措的經歷?學習一門新的語言,最重要的是要掌握它的錯誤處理,調試的辦法.PHP提供了一批錯誤處理函數,來幫助我們調試,處理程序中出現的錯誤.
首先,要了解一下PHP中關于差錯處理的配置指令
error_reporting
這個指令用來設置報錯等級.它的值可以是整數也可以是PHP內置的表現錯誤等級的常量,具體可以參考PHP手冊.
display_errors
是否要顯示錯誤信息作為輸出的一部門輸出到屏幕.它的值可以是布爾值,也可以是stderr,stdout.
display_startup_errors
這個指令主要是作調試用途.因為即使display_errors指令設置為真,部門錯誤也不會顯示.它的值是布爾值.
log_errors
這個指令決定將PHP的差錯信息是記錄到服務器日志還是error_log指定的目標.
現在我們來了解一下PHP提供的差錯處理相關函數
我在調試代碼的時候喜歡在代碼前面加上兩行:
error_reporting(E_ALL);
ini_set('display_errors',1);
ini_set('display_startup_errors', 1);
這兩行代碼影響的便是PHP關于錯誤處理相關配置指令中的error_reporting和display_errors 這兩個配置指令.它將顯示所有的錯誤信息到屏幕.但是有時候我們可能會發現這個不起作用啊,這是什么情況?
我總結一下,有這幾種情況:
第一,你碰到的可能是語法錯誤.由于PHP是解釋型語言,因為語法錯誤了,代碼得不到執行(語法通不外,來不及執行),那么運行時修改配置就達不到了,你通常會看到空白屏,這個時候,你可以通過命令行來檢查一下代碼的語法.如:
php -l phpfilename.php
當然,你也可以直接修改php的配置文件的display_erros指令和error_reporting指令,這樣你就可以看到差錯信息提示了.
第二,你如果是在一個框架或一個開源的系統,比如zend框架,或open cart開源商城系統.這兩行代碼修改的配置指令,在框架代碼中可能被重新修改配置過了.通常一個成熟的框架和開源系統出于平安或其它因素都會通過set_error_handler來修改PHP的默認錯誤處理機制.那么,你最好使用他們的調試排錯機制來調試.
現在來認識一下重要的set_error_handler函數.它的作用是向PHP注冊用戶自定義的錯誤處理函數.必要注意的是,一旦注冊了自定義的錯誤處理函數,PHP的錯誤處理就會被跳過,error_reporting函數設置將沒有作用,而是由你的函數來處理錯誤,決定代碼是否繼續執行,除非你的錯誤處理函數返回false.所以,有時候你會明明加了那幾行代碼,但是沒看到任何錯誤提示.
restore_error_handler函數則是將差錯處理交還給PHP.
另外兩個要特別提到的對調試非常有贊助的函數是debug_backtrace和debug_print_backtrace.它們可以提供代碼執行過程中涉及到的函數調用,包含文件,哪個類,文件第幾行,這些對調試非常有用的信息.
學習一門語言,要從學習如何處理,調試錯誤的代碼開始,掌握好錯誤處理,對調試,對代碼平安趙向陽是至關重要的.
感激閱讀,如有謬誤,歡迎指正!
《PHP學習入門之PHP錯誤處理》是否對您有啟發,歡迎查看更多與《PHP學習入門之PHP錯誤處理》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6914.html