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']没有被定义,它会禁止警告。