Оператор управления PHP (@) не работает

Оператор управления используется, чтобы сделать все предупреждения / ошибки беззвучными, какими бы ни были последствия. Я хотел бы использовать этот сумасшедший инструмент, но, я думаю, у меня есть какая-то странная конфигурация сервера, и, хотя я добавляю @ к функции, она все равно бросает предупреждения / ошибки:

$ php -a Interactive shell php > $f = @file('juzio'); PHP Warning: file(juzio): failed to open stream: No such file or directory in php shell code on line 1 PHP Stack trace: PHP 1. {main}() php shell code:0 PHP 2. file() php shell code:1 

Я пытался найти параметр, который отвечает за это, но ничего не нашел. Кто-нибудь знает, почему @ не работает для меня? На всякий случай, я запускаю PHP 5.3.6-13ubuntu3.10 с Suhosin-Patch. У меня также установлен xdebug (в случае, если это имеет значение).


отредактируйте: пожалуйста, не пишите об error_reporting . Мой вопрос о @ operator. Благодарю.

Директива scream.enabled в вашем файле конфигурации php.ini отключит эффекты оператора подавления ошибок ( @ ):

Указание руководства :

Расширение крика дает возможность отключить оператор управления ошибкой молчания, чтобы сообщалось о всех ошибках. Эта функция контролируется настройкой ini.

См. Пример из документации, чтобы понять, как он влияет на отчет об ошибках.

Отключение scream должно решить проблему.

Измените директиву в php.ini , например:

 scream.enabled = 0 

Если вы хотите отключить его во время выполнения, вы можете использовать ini_set как указано в руководстве:

 ini_set('scream.enabled', false);