Я видел вызовы функций, которым предшествует символ, чтобы отключить предупреждения. Сегодня я просматривал код и нашел это:
$hn = @$_POST['hn'];
Какая польза от этого?
@
– оператор подавления ошибок в PHP.
PHP поддерживает один оператор управления ошибкой: знак at (@). При добавлении выражения в PHP любые сообщения об ошибках, которые могут быть сгенерированы этим выражением, будут игнорироваться.
Видеть:
В вашем примере он используется перед именем переменной, чтобы избежать ошибки E_NOTICE
. Если в массиве $_POST
ключ hn
не установлен; он E_NOTICE
сообщение E_NOTICE
, но @
используется там, чтобы избежать этого E_NOTICE
.
Обратите внимание, что вы также можете поместить эту строку поверх своего сценария, чтобы избежать ошибки E_NOTICE
:
error_reporting(E_ALL ^ E_NOTICE);
Он не будет вызывать предупреждение, если $ _POST ['hn'] не установлен.
Все это означает, что если $ _POST ['hn'] не определен, то вместо того, чтобы бросать ошибку или предупреждение, PHP просто назначит NULL $ hn.
Он подавляет предупреждения, если $ _POST ['something'] не определен.