PHP报错级别

一般的报错: E_NOTICE注意、E_WARNING警告、E_ERROR致命错误

(一般进行调试的时候显现错误,而平时使用时在php.ini中display_errors设置为Off,就会关闭所有的错误提示。要进行错误显示关闭防止错误消息泄露敏感信息。也可以使用error_reporting(0)关闭所有PHP错误报告)

修改报错显示的方法:

1.直接修改PHP配置文件php.ini 

设置error_reporting后,重启web服务器,就会永久生效


error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT  //意思是报告所有的错误,但除了E_DEPRECATED和E_STRICT这两种。

error_reporting=E_ALL &  ~E_NOTICE  //意思是报告所有的错误,但除了E_NOTICE这一种。

选择自己想要的修改,然后保存,重启web服务器后生效。

2.error_reporting()函数

使用函数后可立即生效,但仅限于在当前脚本中使用error_reporting()函数的后面区域(可以放在整个项目的头文件进行调试)。

int error_reporting ([ int $level ] )

开发时感觉最佳是: error_reporting(E_ALL | E_STRICT)   可以把代码优化到最优


<?php

// 关闭所有PHP错误报告
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// 报告 E_NOTICE也挺好 (报告未初始化的变量
// 或者捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// 除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);

// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);

// 报告所有 PHP 错误
error_reporting(-1);

// 和 error_reporting(E_ALL); 一样
ini_set('error_reporting', E_ALL);

?>

附: http://php.net/manual/zh/errorfunc.constants.php

下列常量作为 PHP 核心的一部分总是可用的。

Note: 你可以使用它们在 php.ini 中的常量名称; 但是在PHP之外,例如在 httpd.conf 之中, 你必须使用二进制位掩码来代替。

错误和日志记录
值    常量    说明    备注
1    E_ERROR (integer)    致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。     
2    E_WARNING (integer)    运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。     
4    E_PARSE (integer)    编译时语法解析错误。解析错误仅仅由分析器产生。     
8    E_NOTICE (integer)    运行时通知。表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。     
16    E_CORE_ERROR (integer)    在PHP初始化启动过程中发生的致命错误。该错误类似 E_ERROR,但是是由PHP引擎核心产生的。    since PHP 4
32    E_CORE_WARNING (integer)    PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING,但是是由PHP引擎核心产生的。    since PHP 4
64    E_COMPILE_ERROR (integer)    致命编译时错误。类似E_ERROR, 但是是由Zend脚本引擎产生的。    since PHP 4
128    E_COMPILE_WARNING (integer)    编译时警告 (非致命错误)。类似 E_WARNING,但是是由Zend脚本引擎产生的。    since PHP 4
256    E_USER_ERROR (integer)    用户产生的错误信息。类似 E_ERROR, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。    since PHP 4
512    E_USER_WARNING (integer)    用户产生的警告信息。类似 E_WARNING, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。    since PHP 4
1024    E_USER_NOTICE (integer)    用户产生的通知信息。类似 E_NOTICE, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。    since PHP 4
2048    E_STRICT (integer)    启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。    since PHP 5
4096    E_RECOVERABLE_ERROR (integer)    可被捕捉的致命错误。 它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 如果该错误没有被用户自定义句柄捕获 (参见 set_error_handler()),将成为一个 E_ERROR 从而脚本会终止运行。    since PHP 5.2.0
8192    E_DEPRECATED (integer)    运行时通知。启用后将会对在未来版本中可能无法正常工作的代码给出警告。    since PHP 5.3.0
16384    E_USER_DEPRECATED (integer)    用户产少的警告信息。 类似 E_DEPRECATED, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。    since PHP 5.3.0
30719    E_ALL (integer)    E_STRICT出外的所有错误和警告信息。    30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously


上面的值(数值或者符号)用于建立一个二进制位掩码,来制定要报告的错误信息。可以使用按位运算符来组合这些值或者屏蔽某些类型的错误。请注意,在 php.ini 之中,只有'|', '~', '!', '^' 和 '&' 会正确解析。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值