当前位置:Gxlcms > PHP教程 > error_reporting()设置PHP的报错级

error_reporting()设置PHP的报错级

时间:2021-07-01 10:21:17 帮助过:15人阅读

error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT ^ E_DEPRECATED);
哥们们,帮我解释下这行代码是什么意识,设置什么报错级别,

回复内容:

error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT ^ E_DEPRECATED);
哥们们,帮我解释下这行代码是什么意识,设置什么报错级别,

查阅PHP官方文档就可以知道:error_reporting
上面的代码表示的意思是:除了E_NOTICE E_SCRICT E_DEPRECATED 之外的错误全部都报告。
E_ALL ^ E_NOTICE ^ E_STRICT ^ E_DEPRECATED这个是连续的异或操作。
E_ALL E_NOTICE E_STRICT E_DEPRECATED 这些都是常量,对应的二进制大致如下

E_NOTICE 00001 
E_STRICT 00010
E_DEPRECATED 00100
E_ALL 11111

进行异或操作之后,相当于是把相同的变成0 不同的变成1 也就是说得到的结果是E_ALL排除了进行异或操作的那几个。
以上常量对应的值纯属虚构,具体可以试着打印出来看下到底是多少。
同理还可以使用 E_NOTICE | E_STRICT这样的方法来设置多个级别进行报告。原理是进行或操作之后有1则1,全0则0

这里所代表是意思是:输出所有类型的错误(E_ALL),但排除E_NOTICE、E_STRICT、E_DEPRECATED这几种类型的错误。

这里使用了一个位运算的技巧,因为E_ALL是一个全1数,而E_NOTICE、E_STRICT、E_DEPRECATED都为单1数,这几个异或一下,就形成了一个排除这几项的日志级别的数。

人气教程排行