В чем разница между этими двумя вызовами функций в PHP?@ символ перед вызовом функции
init_get($somevariable);
@init_get($somevariable);
В чем разница между этими двумя вызовами функций в PHP?@ символ перед вызовом функции
init_get($somevariable);
@init_get($somevariable);
«@» затмит любые ошибки php, которые может повысить ваша функция.
Также будут отключены уведомления, поэтому не только ошибки – lugte098
Но что, если вы ставите '@' перед функцией 'trigger_error' PHP? Я видел это в некотором коде, но его поведение пока не соответствует мне. В некоторых случаях я вижу сообщение об ошибке с помощью сконфигурированного обработчика ошибок, а в других случаях он, похоже, сообщает об этом. – fritzmg
'@' временно установит 'error_reporting' в 0, но не« подавит »ошибку. – solidgumby
Он замалчивает ошибки и предупреждения. См. Error Control Operators.
http://www.faqts.com/knowledge_base/view.phtml/aid/18068/fid/38
Всех PHP выражения можно назвать с «@» префиксом, который отключает отчеты об ошибках для этого конкретного выражения.
Как уже было сказано, @
остановит сообщение об ошибке (если есть).
С точки зрения производительности это не рекомендуется.
Что PHP делает это:
Если вы не хотите, чтобы возникали ошибки, используйте error_reporting(0);
.
Или просто написать об ошибке свободного кода: P
Или 'error_reporting (NONE);' –
Предпочитаете ставить ноль, но если это работает, отлично об этом не знали :) – AntonioCS
Как насчет функций, которые вы не контролируете, например, почты? Какие существуют другие варианты? Я использую @ прямо сейчас, но было бы здорово сделать по-другому – spuas
Как все говорили, он прекращает вывод ошибок для этой конкретной функции. Однако это значительно снижает производительность, так как она должна дважды изменять настройку отображения ошибки. Я бы рекомендовал НЕ игнорировать предупреждения или ошибки и вместо этого исправлять код.
Спасибо всем за ваши ответы. Этот код не мой, я только смотрел на код phpBB для любопытства, поэтому у меня нет проблем с производительностью. :) Еще раз спасибо. – nixie
«@» закроет любые ошибки php и уведомления –