Что означает @в PHP?

Возможный дубликат:
Ссылка - что означает этот символ в PHP?

Мне было интересно, что означает @ в языке PHP. Я видел людей, использующих

$connect = @mysql_query('sql query here');

Не знаю, почему. Может ли кто-нибудь объяснить это мне?

Ответ 1

Оператор @ говорит PHP о том, чтобы подавлять сообщения об ошибках, чтобы они не отображались.

Например, используя:

$result = mysql_query("this is an invalid query");

приведет к отображению предупреждения, сообщая вам, что запрос MySQL недействителен, а

$result = @mysql_query("this is still an invalid query");

не будет.

Обратите внимание, однако, что это очень плохая практика программирования, поскольку она не делает ошибку, исчезает, она просто скрывает их, и это делает отладочную работу намного хуже, потому что вы не можете понять, что на самом деле не так с вашим кодом.

Вместо @ вы должны отключить error_reporting и display_errors только display_errors в php.ini

Ответ 4

@ - это способ сообщить, что вы не хотите печатать сообщения об ошибках. Это плохая практика, потому что у вас может быть ошибка и она никогда не увидит ее, потому что вы просто "спрятали" ее.

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


Ресурсы:

Ответ 5

@Operator = Указывает, что при возникновении какой-либо ошибки не отображается сообщение в пользовательском браузере. Есть люди, которые проверяют это и не видят разницы, даже если они помещают @, или нет, они все еще не видят ошибок в браузере, просто чтобы добавить их, причина, почему это происходит из-за настройки в Файл php.ini для вывода ошибки отключается.

У разных хостинговых компаний разные настройки, поэтому убедитесь, что вы не хотите видеть какую-либо уродливую ошибку script для пользователей или хакеров (для того, чтобы дать ключ к проникновению на ваш сайт), вы всегда можете использовать @оператор.

Надеюсь на эту помощь.