PHP中变量名前的'at'符号:@ $ _ POST

时间:2010-08-23 20:43:15

标签: php error-handling operators

我看到函数调用前面有一个at符号来关闭警告。今天我正在浏览一些代码,发现了这个:

$hn = @$_POST['hn'];

这会有什么用处?

5 个答案:

答案 0 :(得分:68)

@是PHP中的错误抑制运算符。

  

PHP支持一个错误控件   operator:at符号(@)。什么时候   在PHP中添加任何表达式   可能生成的错误消息   通过该表达式将被忽略。

查看:

更新

在您的示例 中,它在变量名称之前使用,以避免出现E_NOTICE错误。如果在$_POST数组中,则未设置hn键;它会抛出E_NOTICE条消息,但在此处使用@来避免E_NOTICE

请注意,您也可以将此行放在脚本之上,以避免E_NOTICE错误:

error_reporting(E_ALL ^ E_NOTICE);

答案 1 :(得分:11)

如果未设置$ _POST ['hn'],则不会发出警告。

答案 2 :(得分:7)

所有这些意味着,如果没有定义$ _POST ['hn'],那么PHP将仅向$ hn分配NULL,而不是抛出错误或警告。

答案 3 :(得分:3)

如果未定义$ _POST ['something'],它会禁止警告。

答案 4 :(得分:1)

其他人忘记提及的是,除了忽略NOTICE之外,变量将设置为NULL