error_reporting bool操作

时间:2015-11-03 09:04:47

标签: error-handling php-5.4

https://stackoverflow.com/a/2867082/288568中,我找到了两种禁用通知的方法。那么究竟什么是

之间的区别
error_reporting(E_ALL & ~E_NOTICE);

error_reporting((E_ALL | E_STRICT) ^ E_DEPRECATED  ^ E_NOTICE );

以下几行有什么作用?

regexpr/regmatches

这会正确报告E_ALL和E_STRICT但不报告弃用和通知吗?

1 个答案:

答案 0 :(得分:1)

var_dump(error_reporting(E_ALL ^ E_NOTICE));
var_dump(error_reporting(E_ALL & ~E_NOTICE));

与int(32759)相同。只需要不同的二进制操作即可实现。

  

这会正确报告E_ALL和E_STRICT但不报告弃用和通知吗?

var_dump( decbin ((E_ALL | E_STRICT) ^ E_DEPRECATED  ^ E_NOTICE) );

101111111110111

111111111111111 E_ALL
000100000000000 E_STRICT
000000000001000 E_NOTICE
010000000000000 E_DEPRECATED

所以anwser是肯定的,(E_ALL ^ E_DEPRECATED ^ E_NOTICE)将是相同的。