PHP中变量名前的'At'符号:@$_POST

2021-12-26 00:00:00 error-handling operators php

我见过以 at 符号开头的函数调用来关闭警告.今天我浏览了一些代码,发现了这个:

I've seen function calls preceded with an at symbol to switch off warnings. Today I was skimming some code and found this:

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

它在这里有什么好处?

推荐答案

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

The @ is the error suppression operator in PHP.

PHP 支持一种错误控制运算符:at 符号 (@).什么时候附加到 PHP 中的表达式,任何可能产生的错误信息由该表达式将被忽略.

PHP supports one error control operator: the at sign (@). When prepended to an expression in PHP, any error messages that might be generated by that expression will be ignored.

见:

  • 错误控制运算符
  • @ 运算符的不当使用

在您的示例中,它用在变量名之前,以避免出现 E_NOTICE 错误.如果在$_POST数组中,没有设置hn键;它会抛出一个 E_NOTICE 消息,但 @ 用于避免 E_NOTICE.

In your example, it is used before the variable name to avoid the E_NOTICE error there. If in the $_POST array, the hn key is not set; it will throw an E_NOTICE message, but @ is used there to avoid that E_NOTICE.

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

Note that you can also put this line on top of your script to avoid an E_NOTICE error:

error_reporting(E_ALL ^ E_NOTICE);

相关文章