在调试 PHP 应用程序时, 应当知道两个配置变量. 下面是这两个变量及其默认值:
- display_errors = Off
- error_reporting = E_ALL
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);
- ?>
来源: http://www.bubuko.com/infodetail-2772896.html