【问题标题】:Fetch all PHP errors in array获取数组中的所有 PHP 错误
【发布时间】:2011-11-29 09:33:41
【问题描述】:

有什么方法可以将 PHP 遇到的所有通知、警告、错误等存储在一个数组中?

我需要这个用于自定义错误记录器,并且我希望它能够捕获除异常之外的错误,我已经这样做了。

我设法为最后一个错误找到了一些东西,但这还不够:error_get_last

【问题讨论】:

标签: php error-handling


【解决方案1】:

您必须构建一个自定义错误处理程序: 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");

【讨论】:

  • 谢谢。是否有可能获得错误类型? (即通知、警告)。而且,如果我的错误处理函数是类的一部分,有什么方法可以在不使用方法static的情况下使用它?
  • @EduardLuca 是的,您的自定义错误处理程序可以是任何“回调”,因此您可以在其上使用对象和方法:uk.php.net/manual/en/…
  • @EduardLuca $errno 变量包含错误的类型(例如 E_USER_ERROR 或 E_USER_WARNING)。您可以在此处找到可能值的列表:php.net/manual/en/errorfunc.constants.php
【解决方案2】:

您可以设置custom error handler,然后使用静态变量收集所有错误或将它们写入某种持久存储中。

【讨论】:

    【解决方案3】:

    怎么样 混合 set_error_handler (回调 $error_handler [, int $error_types = E_ALL | E_STRICT])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 2014-11-07
      • 1970-01-01
      相关资源
      最近更新 更多