error_reporting() 设置 PHP 的报错级
程序员文章站
2022-05-21 19:12:36
...
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数,这几个异或一下,就形成了一个排除这几项的日志级别的数。
推荐阅读
-
十位*PHP大师的开发原则(转)
-
PHP使用file_get_content设置头信息的方法
-
为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解
-
无限归来之超级警察 php 无限级缓存的类的扩展
-
ThinkPHP自动填充实现无限级分类的方法_PHP
-
PHP error_reporting设置错误报告级别_PHP教程
-
eclipse 运行php时,运行配置,和调试配置的设置
-
设置php页面编码的二种方法
-
yii2 php namespace 引出第三方非namespace库文件时候,报错:Class not found 的解决
-
PHP设置session定期自动清理的例子