У меня возникли проблемы с отключением устаревших предупреждений на короткий период времени. Они исходят из мусорного скрипта, над которым я вынужден некоторое время работать, в котором они чрезмерно используют preg_replace с модификатором /e. Вместо того, чтобы идти и исправлять все места, которые делают это, мне показалось лучшей идеей отключить устаревшие предупреждения, пока я работаю над этим.
Проблема, как ни странно, заключается в том, что функция error_reporting в начале указанного скрипта, по-видимому, имеет только эффект «вкл / выкл». То есть я могу полностью отключить отчетность с помощью error_reporting(0)
и включить все это с помощью чего-то вроде error_reporting(E_ALL)
. Но использование любого из следующих параметров не влияет. Я все еще получаю более 100 устаревших предупреждений в верхней части моей страницы.
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ALL & ~E_DEPRECATED);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
Я проверил, что для моего файла php.ini установлено значение E_ALL & ~E_DEPRECATED)
(24575), и оно отображается как таковое в phpinfo(). Файл .htaccess в корне проекта пуст. Почему там вообще один, я не знаю.
PHP 5.5.9-1убунту4.4
Любые идеи?
error_reporting
перезаписан. Попробуйте сделать только один index.php, установитеerror_reporting(E_ALL & ~E_DEPRECATED);
и вызовите устаревшую функцию, напримерeregi
. Пожалуйста, скажите мне, это устаревшее появляется. - person vaso123   schedule 14.10.2014error_reporting()
без аргументов, чтобы получить текущее значение. Установите его на что-нибудь и убедитесь, что значение не изменилось после включения других файлов. - person Jonathan Kuhn   schedule 14.10.2014