-2

可能重复:
参考 - 这个符号在 PHP 中是什么意思?

下面的代码有效,但我不确定它是否有效:

// It should print $param or $_GET['uuu'] if isset:

function test($param) {
    echo @$_GET['uuu'] ? $_GET['uuu'] : $param;

}

test('param');

感谢您的任何建议。

4

3 回答 3

6

如果它无效,它将无法工作

@使用它来代替仅仅保存击键或使代码看起来更干净是非常糟糕的做法isset(),因为这不是它的作用。它所做的是尝试访问您的变量,无论它是否已设置,并抑制E_NOTICE如果变量不存在则不可避免地出现。

所以不要@用于检查变量,因为它不是为此目的而设计的。使用isset()which 确实服务于该目的:

echo isset($_GET['uuu']) ? $_GET['uuu'] : $param;
于 2012-08-23T01:40:11.960 回答
3

@$_GET['uuu']如果不存在,则禁止显示警告消息。这通常不是推荐的做法,因为它会避开可能对您有用的错误消息。例如,在这个例子中,我不知道是否$_GET['uuu']真的没有设置,或者form我的 html 中有错误没有发送uuu到服务器。

于 2012-08-23T01:40:45.773 回答
2

@ 符号仅用于忽略错误和警告。使用它不是一个好习惯。我建议你尽量不要使用它。

至于功能,它是有效的。

于 2012-08-23T01:41:28.347 回答