2010-01-04 7 views

ответ

154

«@» затмит любые ошибки php, которые может повысить ваша функция.

+15

Также будут отключены уведомления, поэтому не только ошибки – lugte098

+0

Но что, если вы ставите '@' перед функцией 'trigger_error' PHP? Я видел это в некотором коде, но его поведение пока не соответствует мне. В некоторых случаях я вижу сообщение об ошибке с помощью сконфигурированного обработчика ошибок, а в других случаях он, похоже, сообщает об этом. – fritzmg

+1

'@' временно установит 'error_reporting' в 0, но не« подавит »ошибку. – solidgumby

27

Как уже было сказано, @ остановит сообщение об ошибке (если есть).
С точки зрения производительности это не рекомендуется.

Что PHP делает это:

  • чтение состояния отображения ошибки
  • настройки отображения ошибок не показывать никаких ошибок
  • работает ваша функция
  • заходящего отображение ошибки в предыдущее состояние

Если вы не хотите, чтобы возникали ошибки, используйте error_reporting(0);.

Или просто написать об ошибке свободного кода: P

+3

Или 'error_reporting (NONE);' –

+0

Предпочитаете ставить ноль, но если это работает, отлично об этом не знали :) – AntonioCS

+0

Как насчет функций, которые вы не контролируете, например, почты? Какие существуют другие варианты? Я использую @ прямо сейчас, но было бы здорово сделать по-другому – spuas

6

Как все говорили, он прекращает вывод ошибок для этой конкретной функции. Однако это значительно снижает производительность, так как она должна дважды изменять настройку отображения ошибки. Я бы рекомендовал НЕ игнорировать предупреждения или ошибки и вместо этого исправлять код.

+0

Спасибо всем за ваши ответы. Этот код не мой, я только смотрел на код phpBB для любопытства, поэтому у меня нет проблем с производительностью. :) Еще раз спасибо. – nixie

Смежные вопросы