Оператор управления используется, чтобы сделать все предупреждения / ошибки беззвучными, какими бы ни были последствия. Я хотел бы использовать этот сумасшедший инструмент, но, я думаю, у меня есть какая-то странная конфигурация сервера, и, хотя я добавляю @ к функции, она все равно бросает предупреждения / ошибки:
$ 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);