0

我想知道在 PHP 中使用 @ 符号来抑制表达式错误的用例是什么。

很多人有充分的理由不鼓励它,但我想知道它什么时候可以帮助编写更清晰的代码。我遇到了以下示例,其中对象的验证是在函数内部和外部完成的。在函数内部完成验证有时意味着您可以让函数外部的代码更简洁。

函数外验证:

if (isset($object)) {
    a($object);
}

function a($object) {
}

使用@在函数内部进行验证:

a(@$object);

function a($object) {
    if (!isset($object)) {
        return false;
    }
}

@ 符号有什么好的用例吗?

我知道 @ 符号的作用,但不知道何时使用它

4

2 回答 2

2

@ 是让 PHP 享有糟糕语言声誉的原因之一——它允许你编写糟糕的代码。

我个人使用 @ 表示 unlink() - 如果进行代码审查,有时我可能仍然可以接受这种情况,但我自己不会这样做。

于 2017-07-01T20:24:54.943 回答
1

当您使用无法由您更改的代码(或应用程序)(如外部 API 或编码模块)并且它可能使您的脚本崩溃(例如生成致命错误)时,您可以使用它。

但首先你必须处理这种情况——生成你自己的异常并为其创建可接受的捕获(没有脚本崩溃和页面上的 PHP 警告,但为用户或管理员提供合适的消息)。

因为否则调试变得非常困难。

于 2017-07-01T20:42:23.873 回答