可能重复:
参考-这个符号在PHP中是什么意思?
下面的代码有效,但我不确定它是否有效:
// It should print $param or $_GET['uuu'] if isset:
function test($param) {
echo @$_GET['uuu'] ? $_GET['uuu'] : $param;
}
test('param');
谢谢你的建议。
如果它不是有效,它就不会工作。
用@
代替isset()
只是为了节省击键次数或使代码看起来更干净,这真的是一种可怕的做法,因为它不是这样做的。它所做的是尝试访问您的变量,而不管它是否设置为,并抑制在变量不存在时不可避免出现的E_NOTICE
。
所以不要使用@
来检查变量,因为它不是为这个目的而设计的。使用isset()
,它确实起到了这个作用:
echo isset($_GET['uuu']) ? $_GET['uuu'] : $param;
@
在不存在$_GET['uuu']
的情况下抑制警告消息。这通常不是推荐的做法,因为它会避开可能对您有用的错误消息。例如,在这个例子中,我不知道$_GET['uuu']
是否真的没有设置,或者我的html中有form
错误,没有将uuu
发送到服务器。
@符号用于忽略错误和警告。使用它不是一个好的做法。我建议你尝试not使用它。
至于函数,它是有效的。