4
如果有人能夠向我解釋PHP錯誤處理的體系結構,我會很高興。一些具體問題是:自定義PHP錯誤處理程序是否尊重PHP配置?
- 默認錯誤處理程序在什麼階段讀取相關的PHP配置選項?
- 自定義錯誤處理程序是否完全忽略這些選項?
- 如何使自定義錯誤處理程序尊重配置?
如果有人能夠向我解釋PHP錯誤處理的體系結構,我會很高興。一些具體問題是:自定義PHP錯誤處理程序是否尊重PHP配置?
這幾乎是你懷疑的。自定義錯誤處理程序必須探測所有設置本身並作出相應的反應。
的set_error_handler example首先檢查當前的活動誤差水平,並將其與它表示當前的錯誤類型的第一個回調參數(按位和):
if (!(error_reporting() & $errno)) {
但最初測試,如果你實際上都應該打印錯誤,你還需要:
ini_get("display_errors") or return;
還是要應對更多的設置和仿效的默認錯誤處理程序,甚至ini_get("html_errors")
等。除非你做的一切,手動,用戶錯誤處理程序會顯示所有錯誤。它們不被過濾,回調接收一切。
PHP的默認錯誤處理程序是在這裏行850 php_error_cb
:
http://svn.php.net/viewvc/php/php-src/trunk/main/main.c?revision=309647&view=markup#855
它確實有點多,但還查詢INI註冊表。這就是error_reporting
總是將當前狀態保存到。
謝謝!這回答了我所有的問題! – markus 2011-04-18 08:12:54