最常见的错误分为三种:
错误类型 | 内容说明 |
---|---|
E_ERROE | 错误,执行直接中断 |
E_WARNING | 警告,问题比较严重。但是还会继续向下运行 |
E_NOTICE | 提示,有些小问题不会影响到程序,常发生在项目未定义 |
E_PARSE | 编译时语法解析错误,解析错误仅仅由分析器产生 |
E_ALL | 所有的错误 |
E_STRICT | 启用PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性 |
E_DEPRECATED | 启用后将会对未来版本中可能无法工作的代码给出警告 |
在下面的几种类型中:
error最严重,必须要解决,不然程序无法继续向下执行
warning也很严重,也必须要解决,如果明确的,故意的可以不用处理。
notice你可以不用管,但是有些公司,项目标准特别高,在高标准要求的项目中也必须要解决。因为,notice会影响到PHP的执行效率,通常发生在函数未定义等。
parse错误,是指语法写错了,必须要解决。
error_reporting报告错误类型
error_reporting
是指错误报告。在php.ini中也有这样一个参数。这个参数决定了PHP引擎记录、报告、显示哪些错误类型。
一、在php.ini中error_reporting
参数。若error_reporting
参数设置为0,整个PHP引擎错误钧不会显示,输出,记录。
如果我们想显示所有错误可以写上:
error_reporting = E_ALL
如果我们想显示所有错误但排除提示,可以将这个参数写为:
error_reporting = E_ALL & ~E_NOTICE
显示所有错误,但排除提示、兼容性和未来兼容性,可写为:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
二、有些情况下我们无权限操作php.ini文件,又想要控制error_reporting
怎么办?
在运行的xxxx.php文件开始处,可以使用error_reporting()
函数达到目标。
<?php
//关闭所有的错误提示
error_reporting(0);
?>
[扩展]
@符是我们之前学习过的单行不显示错误,请不用或者少用@符,效率较低。