PHP 8.0 中 @ 错误抑制符为何失效?致命错误为什么无法隐藏?

php 8.0 中 @ 错误抑制符为何失效?致命错误为什么无法隐藏?

错误抑制符无法隐藏致命错误

问题:

在连接数据库时,故意输入错误的登录信息。按照正常的做法,如果登录信息错误,应该触发 if 语句中的错误提示。但是,系统却始终报告致命错误(Fatal Error)。明明使用了错误抑制符 @,为什么仍然无法隐藏错误信息?

回答:

PHP 8.0 及更高版本中,错误抑制符 @ 不再对致命级别(Fatal)的错误起作用。这是因为致命错误是与安全性相关的严重问题,隐藏它们会对应用程序的可靠性造成危害。

因此,在 PHP 8.0 及更高版本中,即使使用 @,也不能隐藏致命错误。错误信息仍然会显示,并导致应用程序终止。

参考:

PHP 官方文档:https://www.php.net/manual/zh/migration80.incompatible.php

以上就是PHP 8.0 中 @ 错误抑制符为何失效?致命错误为什么无法隐藏?的详细内容,更多请关注其它相关文章!