error_reporting() 设置 PHP 的报错级

WBOY
Libérer: 2016-08-04 09:21:12
original
1236 Les gens l'ont consulté

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 这些都是常量,对应的二进制大致如下

<code>E_NOTICE 00001 
E_STRICT 00010
E_DEPRECATED 00100
E_ALL 11111
</code>
Copier après la connexion

进行异或操作之后,相当于是把相同的变成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数,这几个异或一下,就形成了一个排除这几项的日志级别的数。

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal