PHP中最低级别的错误类型是“deprecated”,表示“不推荐,不建议”。这种错误一般是由于使用不推荐的、过时的函数或语法造成的;其虽不影响PHP正常流程,但一般情况下建议修正。
本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑
序言:php错误就是会使脚本运行不正常的情况。
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
就不用说了。
推荐学习:《PHP视频教程》