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

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

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

Какая польза от этого?

Ответ 1

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

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

См:

Обновление:

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

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

error_reporting(E_ALL ^ E_NOTICE);

Ответ 2

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

Ответ 3

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

Ответ 4

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