Символ " At " перед именем переменной в PHP: @ $ POST

Я видел вызовы функций, которым предшествовал символ at для отключения предупреждений. Сегодня я просматривал какой-то код и нашел следующее:

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

что хорошего он сделает здесь?

5 ответов


на @ - Это оператор подавления ошибок в PHP.

PHP поддерживает один контроль ошибок оператор: знак (@). Когда добавлено к выражению в PHP, любое сообщения об ошибках, которые могут быть созданы это выражение будет проигнорировано.

посмотреть:

обновление:

, он используется перед именем переменной, чтобы избежать E_NOTICE есть ошибки. Если в $_POST массив,hn ключ не установлен; он будет бросать E_NOTICE сообщение, но @ используется там, чтобы избежать, что E_NOTICE.

обратите внимание, что вы также можете поместить эту строку в верхней части вашего скрипта, чтобы избежать E_NOTICE ошибка:

error_reporting(E_ALL ^ E_NOTICE);

Он не выдаст предупреждение, если $_POST ['hn'] не установлен.


все это означает, что если $_POST['hn'] не определен, то вместо того, чтобы выдавать ошибку или предупреждение, PHP просто назначит NULL $hn.


Он подавляет предупреждения, если $_POST ['something'] не определен.


кое-что, что другие забыли упомянуть, что помимо игнорирования уведомления, переменная будет установлена в NULL.