[英]'At' symbol before variable name in PHP: @$_POST
我已經看到 function 調用前面有一個 at 符號來關閉警告。 今天我瀏覽了一些代碼,發現了這個:
$hn = @$_POST['hn'];
它在這里有什么好處?
如果未設置$ _POST ['hn'],它不會發出警告。
所有這一切意味着,如果沒有定義$ _POST ['hn'],那么PHP將僅向$ hn分配NULL,而不是拋出錯誤或警告。
如果未定義$ _POST ['something'],它會禁止警告。
我在 11 年后回答關於現代 php 的完整性。
自 php 7.0 以來, null 合並運算符在這種情況下是靜音警告的更直接替代方法。 ??
運算符(除其他外)就是為此目的而設計的。
如果沒有@
,則會顯示警告:
$ php -r 'var_dump($_POST["hn"]);'
PHP Warning: Undefined array key "hn" in Command line code on line 1
NULL
帶有靜音警告 ( @
) 的 output:
$ php -r 'var_dump(@$_POST["hn"]);'
NULL
使用現代 null 合並運算符 ( ??
) 獲得相同的結果:
$ php -r 'var_dump($_POST["hn"] ?? null);'
NULL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.