错误报告级别的数字值

ane*_*yzm 11 php

我正在检查我的PHP服务器的配置,我需要设置以下参数,如下所示:

error_reporting设置为 E_ALL & ~E_NOTICE

但是在我的服务器上设置了一个数值:

error_reporting 6135 6135

我想知道它的意义是什么,如果我真的需要改变它

谢谢

Mar*_*ker 15

用于错误报告的

 E_RECOVERABLE_ERROR  4096 +
E_USER_NOTICE        1024 +
E_USER_WARNING        512 +
E_USER_ERROR          256 +
E_COMPILE_WARNING     128 +
E_COMPILE_ERROR        64 +
E_CORE_WARNING         32 +
E_CORE_ERROR           16 +
E_PARSE                 4 +
E_WARNING               2 +
E_ERROR                 1 +
                   = 6135
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 12

从我们的页面:

  • E_ALL具有30719PHP 5.3.x中的值,6143在PHP 5.2.x中,2047以前

  • E_NOTICE 有价值 8

看起来你正在使用PHP 5.2.x.

现在,如果你做了E_ALL & ~E_NOTICE哪个是按位补充,E_NOTICE然后按位和E_ALL我们得到

6143 & (~8) = 6135
Run Code Online (Sandbox Code Playgroud)


Rao*_*uke 6

错误标志是2个整数的幂,因此您可以使用位运算符组合它们.结果是一个整数,就像你看到的那样,如果你把它设置为E_ALL&~E_NOTICE,它仍然会以整数结束.6135值包含哪些标志取决于您的php版本.您可以使用按位和运算符检查其中是否包含标志,例如

if ((error_reporting() & E_NOTICE) == E_NOTICE) {
    echo "E_NOTICE is active";
}
Run Code Online (Sandbox Code Playgroud)