【发布时间】:2011-04-02 20:46:36
【问题描述】:
我见过以 at 符号开头的函数调用来关闭警告。今天我浏览了一些代码,发现了这个:
$hn = @$_POST['hn'];
它在这里有什么好处?
【问题讨论】:
-
@ 也被称为 atpersand。
标签: php error-handling operators
我见过以 at 符号开头的函数调用来关闭警告。今天我浏览了一些代码,发现了这个:
$hn = @$_POST['hn'];
它在这里有什么好处?
【问题讨论】:
标签: php error-handling operators
@ 是 PHP 中的错误抑制运算符。
PHP 支持一种错误控制 运算符:at 符号 (@)。什么时候 添加到 PHP 中的表达式之前,任何 可能产生的错误信息 通过该表达式将被忽略。
参见:
在您的示例中,在变量名之前使用它以避免出现E_NOTICE 错误。如果在$_POST数组中,hn键没有设置;它会抛出E_NOTICE 消息,但@ 用于避免E_NOTICE。
请注意,您也可以将此行放在脚本顶部以避免出现E_NOTICE 错误:
error_reporting(E_ALL ^ E_NOTICE);
【讨论】:
hn,它会抛出一个通知(Notice: undefined index...)。 @ 将取消该通知。但是使用@ 是错误的。
NULL。
如果 $_POST['hn'] 没有设置,它不会抛出警告。
【讨论】:
这意味着,如果 $_POST['hn'] 没有定义,那么 PHP 不会抛出错误或警告,而是将 NULL 分配给 $hn。
【讨论】:
如果 $_POST['something'] 未定义,它会抑制警告。
【讨论】: