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