“@”抑制符為何無法隱藏錯誤信息
在 php 中,錯誤抑制符“@”可用于抑制錯誤和警告消息。然而,對于數據庫連接等會拋出致命錯誤 (fatal Error) 的操作,“@”抑制符將不再起作用。
原因:
自 php 8.0 開始,致命錯誤不再被“@”抑制器抑制。這是由于致命錯誤被認為是嚴重的錯誤,可能導致程序終止,因此 php 核心團隊決定停止抑制此類錯誤,以確保程序員能夠及時了解并解決這些嚴重問題。
解決方法:
為了解決此問題,請仔細檢查您的數據庫連接憑據并確保其正確無誤。另一種替代方法是使用 php 異常處理機制。您可以使用 try-catch 塊來捕獲數據庫連接異常:
try { // 連接數據庫 } catch (Exception $e) { // 處理數據庫連接異常 }
登錄后復制
此方法仍會顯示一個錯誤消息,但它將是更準確且更容易理解的錯誤消息,可以幫助您更快地解決問題。