php的错误有很多种,包括warning、notice、deprecated、fetal error等。其中notice不叫通知,而叫通知级别的错误,warning也不叫警告,而叫警告级别的错误。
错误大致分为下面几个类型
- deprecated是最低级别的错误,表示“不推荐,不建议”。比如PHP5中使用的ereg系列的正则匹配函数就会报此类错误。这种错误一般由于使用不推荐的、过时的函数或语法造成的。其虽不影响PHP正常流程,但一般情况下建议修正。
- 其次是notice。这种错误一般是语法中存在不当的地方。如使用变量但是未定义就会报此错。最常见的是在数组索引是字符时没有加引号,PHP就视为一个常量,先查找常量表,找不到再视为变量。虽然PHP是脚本语言,语法要求不严,但是仍然建议对变量进行初始化。这种错误不影响PHP正常流程。
- warning是级别比较高的错误,在语法中出现很不恰当的情况时才会报此错误,比如函数参数不匹配。这种级别的错误会导致得不到预期结果,需要修改代码。
- 更高级别的错误是fetal error。这是致命错误,直接导致PHP进程终结,后面的代码不再执行。这种问题非改不可
- 高级别的错误是语法解析错误prase error。上面提到的错误都属于PHP代码运行期间错误,而语法解析错误属于语法检查阶段错误,这将导致PHP代码无法通过语法检查。
这里只是列举了最常见的几个,php手册一共有16个级别的错误。
$date = date('Y-m-d');; if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date,$regs)){ echo $regs[1]."-".$regs[2]."-".$regs[3]; }else{ echo "没有匹配到"; } //Deprecated(在php5版本),Fatal error(在php7版本) if($i > 2020){ echo '$i没有初始化!!!',PHP_EOL; } //Notice $arr = array('arr'=>1,2,3); echo $arr[arr]; //Warning $res = array_sum($arr,1); //Warning echo fun(); //Fatal error echo "最高级别错误'; //Parse error
上面的代码演示了php常见的几个错误级别,如果没有输出完整的话,可以看看php.ini配置文件看看是否如下设置
error_reporting=E_ALL | E_STRICT display_errors=On
其中的error_reporting是指定错误级别,display_errors就不用说了。
标签:总结,错误,echo,语法,error,PHP,级别 From: https://www.cnblogs.com/dituirenwu/p/17093542.html