thinkphp5 中有关源代码上的一个问题
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
整段代码的作用是将你关注的错误转化成异常处理,否则出现错误它就按照错误的处理流程:记录日志,而处理异常的流程里面除了记录日志以外,它还会往客户端发送对应的响应。其中那段位运算就是用来判断发生的错误是不是你关注的错误
如果显示错误(
error_reporting() > 0
)且有错误产生($errno > 0
),则抛出异常否则只记录错误