PHP 中变量名称前的“At”符号:@$_POST

2022-08-30 09:40:02

我见过函数调用前面有一个 at 符号来关闭警告。今天我略读了一些代码,发现了这个:

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

它在这里有什么好处?


答案 1

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

PHP 支持一个错误控制运算符:at 符号 (@)。在 PHP 中附加到表达式之前时,该表达式可能生成的任何错误消息都将被忽略。

看:

更新:

在您的示例中,它在变量名称之前使用,以避免出现错误。如果在数组中,则不设置键;它将抛出一条消息,但在那里用于避免 。E_NOTICE$_POSThnE_NOTICE@E_NOTICE

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

error_reporting(E_ALL ^ E_NOTICE);

答案 2

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


推荐