PHP display_errors = 0 не соблюдается

Я использую CodeIgniter, и я добавил следующие строки в мой index.php:

error_reporting(E_ALL ^ E_NOTICE); 
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', $_SERVER['DOCUMENT_ROOT'] . '/php_errors.log');

По какой-то причине, однако, PHP всегда отображает Предупреждения / Ошибки в любом случае, а не создает журнал в доступном для записи каталоге. Я знаю, что вышеприведенный код был запущен, потому что если я удалю часть "^ E_NOTICES" и повторно отправлю, я увижу множество уведомлений. Я также бросил оператор die() после вышеприведенного кода, чтобы убедиться, что его ударили. Наконец, я просмотрел всю кодовую базу, чтобы убедиться, что "display_errors" не используется позже в коде, перезаписав мое значение 0.

Могу ли я что-то упустить, что мешает остановить отображение ошибок?

1 ответ

Решение

Вы должны искать "set_error_handler" в источнике CodeIgniter. Похоже, их обработчик ошибок уважает error_reporting установка, но не display_errors установка, распространенная ошибка. Смотрите также: Соблюдает ли пользовательский обработчик ошибок PHP конфигурацию PHP?

Другие вопросы по тегам