php错误级别的设置方法
程序员文章站
2022-06-15 09:38:28
php在运行时, 针对严重程度不同的错误,会给以不同的提示。 eg:在$a没声明时,直接相加,值为null,相加时当成0来算.但是,却提示notice,即注意. 我们在开发...
php在运行时, 针对严重程度不同的错误,会给以不同的提示。
eg:在$a没声明时,直接相加,值为null,相加时当成0来算.但是,却提示notice,即注意.
我们在开发中, 为了程序的规范性,把报错级别,调的比较高notice级别的也报出来,有助于我们快速定位错误和代码规范,但是,在产品上线后,过程中,就不宜报这么多错.
1:这种错误给客户的印象不好
2:在报错时,把网站的绝对路径,如d:\www\1015都报出来了.增大被攻击的风险
因此,在网站上线后,就应该让报错级降低,少报错甚至不报.
修改报错级别:
1: php.ini里修改error_reporting 选项
2: 可以在php页面里,用error_reporting()函数来修改
错误级别用2进制的值来表示的: 1111 1111 1111 111从左到右,每位上的1,代表一种错误级别
fatal error致命错误: 0000 0000 0000 001 开启 1
warning 警告错误 : 0000 0000 0000 010 开启 2
notice 警告 : 0000 0000 0001 000 开启 8
eg:
都报出来: error_reporting(11);
不要报notice: error_reporting(3);
任何错误都不报: error_reporting(0);
系统为我们把各个级别的值,用系统常量代替了.
e_error 1
e_warning 2
e_notice 8
报所有错误: error_reporting(e_all);
除了notice,其他都报: error_reporting(e_all & ~e_notice);
在开发中,报错级别高一点,在上线产品中,报错级别要低:+
define('debug',true); // 在开发时,声明一个debug模式
if(defined('debug')) { //检测到处于开发模式
error_reporting(e_all);
} else {
error_reporting(0);
}
eg:在$a没声明时,直接相加,值为null,相加时当成0来算.但是,却提示notice,即注意.
我们在开发中, 为了程序的规范性,把报错级别,调的比较高notice级别的也报出来,有助于我们快速定位错误和代码规范,但是,在产品上线后,过程中,就不宜报这么多错.
1:这种错误给客户的印象不好
2:在报错时,把网站的绝对路径,如d:\www\1015都报出来了.增大被攻击的风险
因此,在网站上线后,就应该让报错级降低,少报错甚至不报.
修改报错级别:
1: php.ini里修改error_reporting 选项
2: 可以在php页面里,用error_reporting()函数来修改
错误级别用2进制的值来表示的: 1111 1111 1111 111从左到右,每位上的1,代表一种错误级别
fatal error致命错误: 0000 0000 0000 001 开启 1
warning 警告错误 : 0000 0000 0000 010 开启 2
notice 警告 : 0000 0000 0001 000 开启 8
eg:
都报出来: error_reporting(11);
不要报notice: error_reporting(3);
任何错误都不报: error_reporting(0);
系统为我们把各个级别的值,用系统常量代替了.
e_error 1
e_warning 2
e_notice 8
报所有错误: error_reporting(e_all);
除了notice,其他都报: error_reporting(e_all & ~e_notice);
在开发中,报错级别高一点,在上线产品中,报错级别要低:+
复制代码 代码如下:
define('debug',true); // 在开发时,声明一个debug模式
if(defined('debug')) { //检测到处于开发模式
error_reporting(e_all);
} else {
error_reporting(0);
}