PHP中最低級別的錯誤類型總結

序言: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中最低級別的錯誤類型總結的文章就介紹到這瞭,更多相關PHP中最低級別的錯誤類型有哪些內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: