錯誤抑制符無法隱藏致命錯誤
問題:
在連接數(shù)據(jù)庫時,故意輸入錯誤的登錄信息。按照正常的做法,如果登錄信息錯誤,應(yīng)該觸發(fā) if 語句中的錯誤提示。但是,系統(tǒng)卻始終報告致命錯誤(Fatal Error)。明明使用了錯誤抑制符 @,為什么仍然無法隱藏錯誤信息?
回答:
立即學(xué)習(xí)“PHP免費學(xué)習(xí)筆記(深入)”;
在 php 8.0 及更高版本中,錯誤抑制符 @ 不再對致命級別(Fatal)的錯誤起作用。這是因為致命錯誤是與安全性相關(guān)的嚴(yán)重問題,隱藏它們會對應(yīng)用程序的可靠性造成危害。
因此,在 PHP 8.0 及更高版本中,即使使用 @,也不能隱藏致命錯誤。錯誤信息仍然會顯示,并導(dǎo)致應(yīng)用程序終止。
參考:
PHP 官方文檔:https://www.php.net/manual/zh/migration80.incompatible.php