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