PHP中variables名前的'At'符号:@ $ _ POST
我已经看到函数调用之前用符号来closures警告。 今天我正在浏览一些代码,发现这一点:
$hn = @$_POST['hn'];
这有什么好处呢?
@
是PHP中的错误抑制运算符。
PHP支持一个错误控制运算符:at符号(@)。 当在PHP中添加expression式时,可能会由该expression式生成的任何错误消息都将被忽略。
看到:
- 错误控制操作符
- @运算符的使用不当
更新:
在你的例子中 ,在variables名之前使用它来避免那里的E_NOTICE
错误。 如果在$_POST
数组中, hn
键没有设置; 它会抛出E_NOTICE
消息,但在那里使用@
来避免E_NOTICE
。
请注意,您也可以将此行放在脚本的顶部以避免发生E_NOTICE
错误:
error_reporting(E_ALL ^ E_NOTICE);
如果没有设置$ _POST ['hn'],它不会发出警告。
所有这一切意味着,如果$ _POST ['hn']没有被定义,那么PHP不会抛出一个错误或警告,而只会将NULL赋值给$ hn。
如果$ _POST ['something']没有被定义,它会禁止警告。