2011-11-29 67 views
3

有什麼辦法可以獲得PHP遇到存儲在數組中的所有通知,警告,錯誤等?獲取數組中的所有PHP錯誤

我需要這個自定義錯誤記錄器,並且我希望它能夠捕獲除了異常之外的錯誤,我已經這樣做了。

我設法找到了一個錯誤,但是這還不夠:因爲它們發生某種error_get_last

+1

你試過[ 'set_error_handler'](http://php.net/manual/en/function.set-error-handler.php)? – Shef

回答

7

你必須建立一個自定義錯誤處理程序: http://www.php.net/manual/en/function.set-error-handler.php

$_ERRORS = array(); 

function myErrorHandler($errno, $errstr, $errfile, $errline) { 
    global $_ERRORS; 
    $_ERRORS[] = array("errno" => $errno, "errstr" => $errstr, "errfile" => $errfile, "errline" => $errline); 
} 

set_error_handler("myErrorHandler"); 
+0

謝謝。是否有可能獲得錯誤類型? (即通知,警告)。而且,如果我的錯誤處理函數是類的一部分,是否有任何方法可以在不使用靜態方法的情況下使用它? –

+1

@EduardLuca是的,你的自定義錯誤處理程序可以是任何「回調」,所以你可以使用它的對象和方法:http://uk.php.net/manual/en/language.pseudo-types.php#language .types.callback – liquorvicar

+1

@EduardLuca'$ errno'變量包含錯誤的類型(例如E_USER_ERROR或E_USER_WARNING)。你可以在這裏找到可能值列表:http://php.net/manual/en/errorfunc.constants.php –

3

你可以設置一個custom error handler,然後要麼使用一個靜態變量來收集所有的錯誤,或把它們寫的持久性存儲。

1

什麼 混合的set_error_han dler(回調$ error_handler [摘要$ error_types = E_ALL | E_STRICT])