2011-11-29 71 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])