Он подавляет любые ошибки, которые в противном случае могли бы выводиться.
Это рецепт боли и лишений, так как он неизбежно приводит к трудностям при возникновении ошибки, вы обязаны тратить часы, отслеживая причину. Если оператор @ не использовался, ошибка будет найдена в секундах.
Нет никаких оснований для его использования, используйте параметры display_errors и error_log ini, чтобы предотвратить отображение ошибок на реальном сайте, и пусть они будут показаны на вашем сайте-разработчике.
Если есть ошибка, которую вы не хотите видеть, вам лучше просто ее исправить, чем подавить ее!
Если это что-то во внешней библиотеке и вне вашего контроля, просто напишите ее в журналах, отключите display_errors на производстве и живите с ней. Потому что нет никакой информации, будет ли ошибка, которую вы сейчас подавляете и с которой вы счастливы, будет ВСЕГДА быть ошибкой, которая отбрасывается оттуда.
@ === BAD
Ну ленивый ... Скажем, это полезно для сценария "запустить один раз, выбросить". В любом случае это плохая практика. – 2008-09-26 11:52:00