我正在检查我的PHP服务器的配置,我需要设置以下参数:
error_reporting设置为E_ALL & ~E_NOTICE
但是在我的服务器上设置了一个数值:
error_reporting 6135 6135
我想知道它的含义是什么,如果我真的需要改变它
感谢
答案 0 :(得分:15)
Values用于错误报告
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
答案 1 :(得分:13)
来自page我们:
E_ALL
在PHP中的值为30719
5.3.x,PHP 5.2.x中的6143
,2047
以前的<{p>
E_NOTICE
的值为8
看起来您使用的是PHP 5.2.x
现在如果您执行E_ALL & ~E_NOTICE
哪个是E_NOTICE
的按位补码,然后是E_ALL
的按位和,我们得到
6143 & (~8) = 6135
答案 2 :(得分:6)
错误标志是2个整数的幂,因此您可以使用位运算符组合它们。如果将其设置为E_ALL&amp; ~E_NOTICE它仍然会以整数结束。 6135值包含哪些标志取决于您的php版本。您可以使用按位和运算符检查其中是否包含标志,例如
if ((error_reporting() & E_NOTICE) == E_NOTICE) {
echo "E_NOTICE is active";
}
答案 3 :(得分:2)
foreach(
array('E_ALL', 'E_NOTICE', '~E_NOTICE', 'E_ALL&~E_NOTICE')
as $s) {
eval("\$v=$s;");
printf("%20s = dec %10u = bin %32b\n", $s, $v, $v);
}
结果
E_ALL = dec 6143 = bin 1011111111111
E_NOTICE = dec 8 = bin 1000
~E_NOTICE = dec 4294967287 = bin 11111111111111111111111111110111
E_ALL&~E_NOTICE = dec 6135 = bin 1011111110111
答案 4 :(得分:1)
注意,error_reporting(-1);
将报告所有和任何PHP错误。
答案 5 :(得分:0)
error_reporting 6135不会记录运行时通知,因此最好使用
error_reporting(E_ALL);
接着是
ini_set('display_errors', '0');
这将记录包括运行时通知在内的所有错误,但是在浏览器中显示pevent。这可以在任何PHP版本中使用。