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 就不用说了。