我想,标题本身解释了这个问题....:)
使用 @
来抑制 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/