3

我正在尝试为 php 编写一个错误处理程序类。我已经测试过该对象已经创建,但它似乎没有处理错误。

我最初在索引文件的函数中使用了相同的代码,它工作得很好,但我宁愿有一个类。为什么这不处理错误?

class class_error
{
    public function __construct()
    {
        // set to the user defined error handler
        set_error_handler($this->errorHandler());
    }

    public function errorHandler($errno, $errstr, $errfile, $errline)
    {
        //don't display error if no error number
        if (!(error_reporting() & $errno)) {
            return;
        }

        //display errors according to the error number
        switch ($errno)
        {
            case E_USER_ERROR:
                echo "<b>ERROR</b> [$errno] $errstr<br />\n";
                echo "  Fatal error on line $errline in file $errfile";
                echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
                echo "Aborting...<br />\n";
                exit(1);
                break;

            case E_USER_WARNING:
                echo "<b>WARNING</b> [$errno] $errstr<br />\n";
                break;

            case E_USER_NOTICE:
                echo "<b>NOTICE</b> [$errno] $errstr<br />\n";
                break;

            default:
                echo "<b>UNKNOWN ERROR</b> [$errno] $errstr<br />\n";
                break;
        }

        //don't execute PHP internal error handler
        return true;
    }
}
4

1 回答 1

4

用这个:

set_error_handler(array($this, "errorHandler"));

更多信息: http: //php.net/manual/en/language.types.callable.php

于 2013-11-04T16:50:53.590 回答