“@”抑制符为何无法隐藏错误信息
在 php 中,错误抑制符“@”可用于抑制错误和警告消息。然而,对于数据库连接等会抛出致命错误 (fatal Error) 的操作,“@”抑制符将不再起作用。
原因:
自 php 8.0 开始,致命错误不再被“@”抑制器抑制。这是由于致命错误被认为是严重的错误,可能导致程序终止,因此 php 核心团队决定停止抑制此类错误,以确保程序员能够及时了解并解决这些严重问题。
解决方法:
为了解决此问题,请仔细检查您的数据库连接凭据并确保其正确无误。另一种替代方法是使用 php 异常处理机制。您可以使用 try-catch 块来捕获数据库连接异常:
try { // 连接数据库 } catch (Exception $e) { // 处理数据库连接异常 }
登录后复制
此方法仍会显示一个错误消息,但它将是更准确且更容易理解的错误消息,可以帮助您更快地解决问题。