PHP前端开发

PHP 8.0后@抑制符失效:如何优雅地处理致命错误?

百变鹏仔 1个月前 (12-15) #PHP
文章标签 抑制

@抑制符无法隐藏错误信息的原因

在 php 8.0 之前,可以使用 @ 抑制符来抑制错误信息。然而,从 php 8.0 开始,该抑制符不再对 fatal 级别的错误起作用。

具体问题原因

在您提供的代码中,您尝试连接数据库并使用了错误的登录信息。这导致了一个 fatal 级别的错误。 @ 抑制符无法隐藏此类错误。

解决方法

立即学习“PHP免费学习笔记(深入)”;

为了按 if 语句的结果显示错误,您需要捕获并处理异常。例如:

try {    // 连接数据库} catch (Exception $e) {    // 处理错误    echo $e->getMessage();}

注意

如果您使用 php 小于 8.0 的版本,则 @ 抑制符仍将对 fatal 级别的错误起作用。但是,强烈建议使用异常处理来捕获和处理错误,因为它提供了更健壮和可控的错误处理机制。