为什么php仍然报告错误?

Why php still report errors?

提问人:ogbofjnr 提问时间:3/5/2020 最后编辑:ogbofjnr 更新时间:3/6/2020 访问量:75

问:

在simplesamlPHP库中有代码

Logger::maskErrors(E_ALL);
$hidden = in_array(
    self::$HIDE_FROM_DISCOVERY, 
    $metadata['EntityAttributes'][self::$ENTITY_CATEGORY], 
    true
);
Logger::popErrorMask();

因此,他们决定将错误报告设置为 0,然后恢复它,而不是使用。问题是,当我将其作为脚本运行时,它可以工作,但是当我将其插入框架时,它仍然失败并出现错误。 虽然我在那里倾倒了水平,但它确实设置为 0。isset($metadata['EntityAttributes'][self::$ENTITY_CATEGORY])

我还听说,如果您设置了用户定义的错误处理函数,则完全忽略 error_reporting() 设置。但全局搜索不会在项目中返回任何set_error_handler。

php 处理 错误 报告 simplesamlphp

评论


答:

0赞 ogbofjnr 3/6/2020 #1

尽管如此,我没有正确查看供应商文件夹。它在 Laravel 工作的原因:set_error_handler()

 public function handleError($level, $message, $file = '', $line = 0, $context = [])
    {
        if (error_reporting() & $level) {
            throw new ErrorException($message, 0, $level, $file, $line);
        }
    }

但我的框架是这样的:

    public function handleError($code, $message, $filename = '', $line = 0)
    {
        throw new \ErrorException($message, $code, 0, $filename, $line);
    }