Это ужасный, очень вредный и опасный оператор.
подавляет он вывод не варнингов, а любых сообщений об ошибках.
перед инклюде - это просто глобальная засада, которую программист сам себе устраивает.
@ используют только дураки, которые не понимают, что они делают.
сообщения об ошибках - это манна небесная, это единственное, что помогает программисту. Без них он как без зрения, слуха и обоняния.
сообщения об ошибках надо не подавлять, а наоборот - с каждой разбираться, и исправлять программу!
@ ставят в том случае, если не хотят, чтобы пользователь видел сообщение об ошибке.
но для этого есть гораздо более эффективные способы.
1. такой же неправильный, как и сама собака, но более удобный.
Вместо того, чтобы ставить перед каждой функцией собаку (а потом убирать, если что-то не работает), можно написать сразу в начале скрипта
error_reporting(0);
но правильнее, написать так
ini_set(\'display_errors\',0);
ini_set(\'log_errors\',1);
тогда пользователь ошибок не увидит, а программист - в логах - увидит!