'At' символ перед именем переменной в PHP: @ $ _ POST

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

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

Что хорошего здесь будет?

51
задан Peter Mortensen 10 December 2015 в 09:58
поделиться

3 ответа

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

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

См .:

Обновление:

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

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

error_reporting(E_ALL ^ E_NOTICE);
68
ответ дан 7 November 2019 в 10:11
поделиться

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

3
ответ дан 7 November 2019 в 10:11
поделиться

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

7
ответ дан 7 November 2019 в 10:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: