E_ALL 能从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点
太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的
输出
所以不建议使用 2047,最好把默认值改为:
error_reporting
= E_ALL & ~E_NOTICE
PHP.ini 中 display_errors = Off
失效的解决
问题:
PHP 设置文件 php.ini 中明明已经设置 display_errors = Off,但是在运行过程中,网页上还
是会出现错误信息。
解决:
经查 log_errors= On,据官方的说法,当这个 log_errors 设置为 On,那么必须指定
error_log
文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输
出渠道,那么也就使得 display_errors 这个指定的 Off 失效,错误信息还是打印了出来。于
是将 log_errors = Off
,问题就解决了。
经常见到
error_reporting
(7
)直意为:设定错误讯息回报的等级。
value constant
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
然而 7=1+2+4
就是出错时显示 1 E_ERROR 2 E_WARNING 4 E_PARSE
代码如下:
<?php
//
禁用错误报告
error_reporting
(0);
//
报告运行时错误
error_reporting
(E_ERROR | E_WARNING | E_PARSE);
//
报告所有错误
error_reporting
(E_ALL);