错误抑制符无法隐藏致命错误
问题:
在连接数据库时,故意输入错误的登录信息。按照正常的做法,如果登录信息错误,应该触发 if 语句中的错误提示。但是,系统却始终报告致命错误(Fatal Error)。明明使用了错误抑制符 @,为什么仍然无法隐藏错误信息?
回答:
立即学习“PHP免费学习笔记(深入)”;
在 php 8.0 及更高版本中,错误抑制符 @ 不再对致命级别(Fatal)的错误起作用。这是因为致命错误是与安全性相关的严重问题,隐藏它们会对应用程序的可靠性造成危害。
因此,在 PHP 8.0 及更高版本中,即使使用 @,也不能隐藏致命错误。错误信息仍然会显示,并导致应用程序终止。
参考:
PHP 官方文档:https://www.php.net/manual/zh/migration80.incompatible.php