thinkphp5 中有关源代码上的一个问题

发布于 2022-09-07 21:57:27 字数 601 浏览 9 评论 0

1、问题

我自己在 tp5.1的源码的时候,看到 注册错误和异常处理机制的时候,在 error.php 中看到一段代码不是很理解

public static function appError($errno, $errstr, $errfile = '', $errline = 0)
    {
        $exception = new ErrorException($errno, $errstr, $errfile, $errline);
        if (error_reporting() & $errno) {
            // 将错误信息托管至 think\exception\ErrorException
            throw $exception;
        }

        self::getExceptionHandler()->report($exception);
    }

这是error的处理函数,
我对于其中 if (error_reporting() & $errno) 这一段特别不理解。

这个位运算 在这里有什么意义?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

隔纱相望 2022-09-14 21:57:27

整段代码的作用是将你关注的错误转化成异常处理,否则出现错误它就按照错误的处理流程:记录日志,而处理异常的流程里面除了记录日志以外,它还会往客户端发送对应的响应。其中那段位运算就是用来判断发生的错误是不是你关注的错误

嘴硬脾气大 2022-09-14 21:57:27

如果显示错误(error_reporting() > 0)且有错误产生($errno > 0),则抛出异常
否则只记录错误

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文