Няколко причини да не ползвате @ оператора
Дерик Ритънс сподели в блог-а си няколко смислени причини, поради които оператора @, използван често за подтискане на грешките, е добре да се избягва.
- Минавате през Ада за да дебъгнете приложението
Най-честото приложение на оператора @ е при свързване към база данни, за да не се пускат досадните съобщения за грешка при свързването. Може да не може да разберете дали имате грешни данни за връзване към базата, дали базата работи и дали въобще сте заредили модула за връзка с тази база. - @ е бавен
@ оператора е бавен, защото всеки път когато го използвате, се налага употребата на механизма за редакция на INI настройките. На практика PHP временно променя стойността на error_reporting параметъра. - @ е бавен (2)
Нормално едно съобщение за грешка се обработва до нормално съобщение, готово за браузъра и error_reporting се проверява преди да се форматира. При оператора @ нещата не стоят така. Там съобщението минава целия път, включително форматирането и чак тогава се проверяват настройките. - @ е бавен (3)
Компилатора на Zend се оказва, че генерира по-бавен код, когато ползвате @.