开启错误信息函数ini_set('display_errors', 'on')和error_reporting(E_ALL)

  • 内容
  • 评论
  • 相关

PHP提供了错误信息提示函数,在生产环境中可以在php.ini中进行设置display_errors = Off。但在调试环境中有时候为了方便开发调试,需要开启错误信息。PHP提供了如下两个函数进行错误提示:

1、ini_set('display_errors', 'on');

2、 error_reporting(E_ALL)。

ini_set('display_errors', 'on')权限大于error_reporting(E_ALL)。如果前者ini_set('display_errors', 'off'),那么无论后者怎么设置都是无效的。只有ini_set('display_errors', 'on'),后者才有效果。

error_reporting(E_ALL)是报错报告级别,其取值可以同时取多个,详细见w3school解析,或下面解析

注:解析摘自w3school。

定义和用法

error_reporting() 设置 PHP 的报错级别并返回当前级别。

语法

error_reporting(report_level)

如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:

常量 描述
1 E_ERROR Fatal run-time errors. Errors that can not be recovered from. Execution of the script is halted
2 E_WARNING Non-fatal run-time errors. Execution of the script is not halted
4 E_PARSE Compile-time parse errors. Parse errors should only be generated by the parser
8 E_NOTICE Run-time notices. The script found something that might be an error, but could also happen when running a script normally
16 E_CORE_ERROR Fatal errors at PHP startup. This is like an E_ERROR in the PHP core
32 E_CORE_WARNING Non-fatal errors at PHP startup. This is like an E_WARNING in the PHP core
64 E_COMPILE_ERROR Fatal compile-time errors. This is like an E_ERROR generated by the Zend Scripting Engine
128 E_COMPILE_WARNING Non-fatal compile-time errors. This is like an E_WARNING generated by the Zend Scripting Engine
256 E_USER_ERROR Fatal user-generated error. This is like an E_ERROR set by the programmer using the PHP function trigger_error()
512 E_USER_WARNING Non-fatal user-generated warning. This is like an E_WARNING set by the programmer using the PHP function trigger_error()
1024 E_USER_NOTICE User-generated notice. This is like an E_NOTICE set by the programmer using the PHP function trigger_error()
2048 E_STRICT Run-time notices. PHP suggest changes to your code to help interoperability and compatibility of the code
4096 E_RECOVERABLE_ERROR Catchable fatal error. This is like an E_ERROR but can be caught by a user defined handle (see also set_error_handler())
8191 E_ALL All errors and warnings, except level E_STRICT (E_STRICT will be part of E_ALL as of PHP 6.0)

例子

任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

<?php
//禁用错误报告
error_reporting(0);

//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
error_reporting(E_ALL);
?>
版权声明:本站文章均属原创,部分图片引用自网络,如有侵权请联系博主进行删除。
转载注明:吴本清博客 - NickorWu - 吴先生原创作品:开启错误信息函数ini_set('display_errors', 'on')和error_reporting(E_ALL)
本文地址:http://www.nickorwu.com/46.html