我想,标题本身解释了这个问题....:)

使用 @ 来抑制 PHP 警告和通知是否正确?
例如,在:-

if (isset($someArray['somekey'])) {
    $myVar = $someArray['somekey'];
}

并在:-
$myVar = @$someArray['somekey'];

哪个是正确的方法?为什么另一个是错误的?

最佳答案







第一种方法。



这两种方法都使 $myVar 被分配了一个 NULL ,但你不应该试图抑制错误/警告。

评论说明:

好吧,当您期待其他东西时,您不想知道是什么导致您的脚本显示一些奇怪的输出?

假设您正在运行此代码..echo $source=file_get_contents("http://www.google.com"); 考虑一下,如果 google.com 已关闭,那么您会在脚本上收到类似 ..'hostname not found` 的通知,通过阅读此信息性消息,您可以很清楚地知道您的代码是正确的,但问题仅在于 Google 服务器。

假设您有 echo $source=@file_get_contents("http://www.google.com"); ,则不会打印任何内容,但是您会期待 HTML 源代码。

你看懂了吗?

关于php - 是否使用 "@"来抑制警告/通知?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20854013/

10-16 21:41