error_reporting 设定错误讯息回报的等级

error_reporting 设定错误讯息回报的等级
2047我记得应该是E_ALL。


 php.ini 文件中有许多配置设置。您应当已经设置好自己的php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装PHP 和 Apache 2 的文档说明中所示的那样(请参阅 参考资料)。在调试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); 
?>

你可能感兴趣的:(error_reporting 设定错误讯息回报的等级)