[PHP] 错误报告设置 (威武的燕十八老师的视频的 课后作业) 2013-05-31

时间:2022-01-13 21:56:28

错误报告设置

产品上线后,网站运营过程中,就不要进行报错。
1. 客户印象不好
2. 报错中,绝对路径暴露,安全风险变大
3. 网站上线后,不要报错。

方法:
1. 修改php.ini 里修改 error_reporting 选项
2. 在php页面里面,用error_reporting() 函数来修改

错误级别是用2进制掩码来表示的
1111 1111 1111 111
从左到右,每位上的1,代表1种错误

fatal error 致命错误: 0000 0000 0000 001 开启
warning        警告错误: 0000 0000 0000 010 开启
NOTICE        通告:      0000 0000 0001 000 开启
系统为我们把各个级别都用系统常量代替了
E_ERROR 1
E_WARNING 2
E_NOTICE 8

可以进行位运算
例如 要通告warning 和 fatal 不通报 notice的时候可以如下设置

1 error_reporting(E_ALL & ~E_NOTICE);
2 
3 
4 error_reporting(0);
5 echo $a+$b; //notice 通报
6 echo 3/0; //warning 通报
7 echo dsafasdfasdf();// fatal 通报


在开发中,报错级别要高
上线产品,报错级别要低

1 define('DEBUG',true);  //在开发时,声明一个DEBUG模式
2 
3 if(defined('DEBUG')){  //检测到处于开发模式
4     error_reporting(E_ALL);
5 } else {
6     error_reporting(0);
7 }