php错误级别
来源:互联网 发布:windows纯净版系统好吗 编辑:程序博客网 时间:2024/06/03 18:41
php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux上安装 PHP和 Apache 2的文档说明中所示的那样。在调试 PHP应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值:
display_errors = Off
error_reporting = E_ALL
通过在 php.ini文件中搜索它们,可以发现这两个变量当前的默认值。display_errors变量的目的很明显 ——它告诉 PHP是否显示错误。默认值是 Off。但是,要让开发过程更加轻松,请把这个值设为On:
display_errors = On
error_reporting 变量的默认值是E_ALL。这个设置会显示从不良编码实践到无害提示到出错的所有信息。E_ALL对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出。我只想看到错误和不良编码实践,但是不想看到无害的提示。所以,请用以下值代替error_reporting 的默认值:
error_reporting = E_ALL & ~E_NOTICE
重新启动 Apache,就全部设置好了。接下来,将学习如何在 Apache上做同样的事。
服务器上的错误报告
依赖于 Apache正在做的工作,在 PHP中打开错误报告可能没法工作,因为在计算机上可能有多个 PHP版本。有时很难区分 Apache正在使用哪个 PHP版本,因为 Apache只能查看一个 php.ini文件。不知道 Apache正在使用哪个 php.ini文件配置自己是一个安全问题。但是,有一种方法可以在 Apache中配置 PHP变量,从而保证设置了正确的出错级别。
而且,最好知道如何在服务器端设置这些配置变量,以否决或抢占php.ini 文件,从而提供更高级别的安全性。
在配置 Apache时,应该已经接触过 /conf/httpd.conf中 http.conf文件中的基本配置。
要做在php.ini文件中已经做过的事,请把下列各行添加到httpd.conf,覆盖任何php.ini 文件:
php_flag display_errors on
php_value error_reporting 2039
这会覆盖在 php.ini文件中为 display_errors已经设置的标志,以及 error_reporting的值。值 2039代表 E_ALL & ~E_NOTICE。如果愿意采用E_ALL,请把值设为2047。同样,还是要重启Apache。
接下来,要在服务器上测试错误报告。
关于error_reporting()这个函数,它是可以屏蔽到一些错误信息,但是PHP核心造成的错误,是无法屏蔽的,因为PHP核心造成的错误会直接导致PHP文件编译失败,因为书写格式没有按照PHP的编码规则写而造成的错误,是无法屏蔽的
定义和用法:
error_reporting()设置 PHP 的报错级别并返回当前级别。
函数语法:
error_reporting(report_level)
如果参数 level 未指定,当前报错级别将被返回。下面几项是 level可能的值:
值 常量 描述
现在,我将其总结如下:
数字
常量
说明
1
E_ERROR
致命错误,脚本执行中断,就是脚本中有不可识别的东西出现
举例: Error:Invalid parameters. Invalid parameter name
2
E_WARNING
部分代码出错,但不影响整体运行
举例: Warning: require_once(E:/include/config_base.php)
4
E_PARSE
字符、变量或结束的地方写规范有误
举例: Parse error: syntax error, unexpected $end in
8
E_NOTICE
一般通知,如变量未定义等
举例: Notice: Undefined variable: p in E:\web\index.php on line 17
16
E_CORE_ERROR
PHP进程在启动时,发生了致命性错误
举例: 暂无
32
E_CORE_WARNING
在PHP启动时警告(非致命性错误)
举例: 暂无
64
E_COMPILE_ERROR
编译时致命性错误
举例: 暂无
128
E_COMPILE_WARNING
编译时警告级错误
举例: 暂无
256
E_USER_ERROR
用户自定义的错误消息
举例: 暂无
512
E_USER_WARNING
用户自定义的警告消息
举例: 暂无
1024
E_USER_NOTICE
用户自定义的提醒消息
举例: 暂无
2047
E_ALL
以上所有的报错信息,但不包括E_STRICT的报错信息
举例: 暂无
2048
E_STRICT
编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
error_reporting变量的默认值是 E_ALL & ~E_NOTICE
开发时,最佳的值为: E_ALL | E_STRICT
如果设置为:error_reporting(E_ALL | E_STRICT),则表示记录所有的错误信息
可能会导致网站出现一大堆的错误代码;但是对于程序员来说应该说是一件好事,可以把代码优化到最优; 一些非致命性错误虽然不影响程序的运行,但是会加重PHP的负担.
最后,晒出英文版的对照表:
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)
- PHP错误级别设置
- PHP错误级别
- php错误级别
- php 错误级别
- PHP 错误级别
- php 错误级别
- PHP错误级别详解
- php错误级别
- php错误级别
- php错误级别
- php错误级别
- PHP错误级别
- php的错误级别
- php错误级别
- php 错误级别详情
- php中的错误级别
- PHP错误级别设置
- php中的错误级别
- RadioButton与 checkBox的使用
- 自动提取HTML中的JS进行合并与压缩
- ajaxSubmit异步提交
- ios开发基础视图 - UIPickerView
- PHP api方法总结
- php错误级别
- 第十二周上机实践——项目2-Time类中的运算符重载
- eclipse中 起动tomcat时报Multiple Contexts have a path of 。。
- [repost]State of the Art JavaScript in 2016
- jquery使用类似于java的集合
- ubuntu14.04上安装Mysql-5.7.11
- oracle中if/else功能的实现的3种写法以及elseif的写法
- force-direct力引导算法
- 谷歌整合登入系统到Android应用