NoteDeep
官网截图:

可以看到,左侧的数字其实是有规律的。用二进制表示的话,每个位都代表了一种错误。一共2Byte大小,也就是16位.
首位表示符号的话,也就是有15位是表示最后的错误级别的。
E_ERROR 000000000000001
E_WARNING 000000000000010
...
E_ALL 111111111111111

我们之前有说到:set_error_handler完全无视error_reporting的设置.
那么,有两种方式可以去让它遵从error_reporting的设置。

第一种是利用第二个参数。
set_error_handler('handleError', error_reporting());

第二种是在handleError内部判断:
public function handleError($type, $message, $file = '', $line = 0, $context = array()) { if (error_reporting() !== 0) { $error_types = error_reporting(); if ($error_types & $type) { // &按位取与 // do your things }
}
}













评论列表