Как уже было сказано ранее: оператор @
подавляет все ошибки в PHP, включая уведомления, предупреждения и даже критические ошибки.
НО: Пожалуйста, действительно, вообще не используйте оператор @
.
Почему?
Что ж, потому что, когда вы используете оператор @
для подавления ошибок, вы вообще не знаете, с чего начать, когда происходит ошибка. Я уже немного повеселился с устаревшим кодом, когда некоторые разработчики довольно часто использовали оператор @
. Особенно в таких случаях, как файловые операции, сетевые вызовы и т. Д. Во всех этих случаях многие разработчики рекомендуют использовать оператор @
, поскольку это иногда выходит за рамки возможного, когда здесь возникает ошибка (например, API-интерфейс 3-го лица может быть недоступен и т. д.).
Но какой смысл все еще не использовать его? Давайте посмотрим с двух точек зрения:
Как разработчик: Когда используется @
, я понятия не имею, с чего начать. Если есть сотни или даже тысячи вызовов функций с @
, ошибка может быть такой же, как у всех. В этом случае разумная отладка невозможна. И даже если это просто ошибка 3-го участника - тогда все в порядке, и вы сделали быстро. ;-) Более того, лучше добавить достаточно подробностей в журнал ошибок, чтобы разработчики могли легко решить, является ли запись в журнале чем-то, что нужно проверять дальше, или это просто сбой третьей стороны, который выходит за рамки возможностей разработчика.
Как пользователь: Пользователям все равно, какова причина ошибки или нет. Для них есть программное обеспечение, чтобы выполнить определенную задачу и т. Д. Их не волнует, это ошибка разработчика или проблема стороннего разработчика. Специально для пользователей я настоятельно рекомендую регистрировать все ошибки, даже если они выходят за рамки. Возможно, вы заметите, что определенный API часто отключен. Что ты можешь сделать? Вы можете поговорить со своим партнером по API, и если они не могут поддерживать его стабильность, вам, вероятно, следует поискать другого партнера.
Короче: Вы должны знать, что существует что-то вроде @
(знание всегда хорошо), но просто не используйте его . Многие разработчики (особенно те, кто отлаживают код от других) будут очень благодарны.