символ @ перед вызовом функции


в чем разница между этими двумя вызовами функций в PHP?

init_get($somevariable);

@init_get($somevariable);
5 108
php

5 ответов:

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

он отключает ошибки и предупреждения. Смотрите Операторы Контроля Ошибок.

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

что php делает это:

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

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

или просто напишите бесплатный код ошибки: P

http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38

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

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