Недавно я обновился до PHP 8.1 и приложил все усилия, чтобы исправить случаи, когда NULL передавался встроенным функциям, таким как trip() или strtolower(). Как и ожидалось, я кое-что пропустил. Однако кажется, что исключения, создаваемые этим в PHP, не являются E_DEPRECATED. Я не могу найти, какой именно тип исключения задокументирован. В руководстве по миграции просто говорится ниже, а комментарий в коде заставляет меня думать, что это приведет к выдаче E_DEPRECATED.
Скалярные типы для встроенных функций по умолчанию допускают значение NULL. Это поведение устарело, чтобы соответствовать поведению пользовательских функций, где скалярные типы должны быть явно помечены как допускающие значение NULL.
У меня в php.ini для параметра error_reporting установлено значение E_ALL & ~E_DEPRECATED & ~E_STRICT, но я все еще получаю исключения. Я записываю текст исключения в нашу базу данных, и он определенно выглядит как сообщение об устаревании. Кто-нибудь знает, какой именно тип ошибки выдается?
У меня определен обработчик ошибок, но я ничего не передаю во втором параметре для уровней ошибок. Может быть, я неправильно понимаю, как set_error_handler работает в сочетании с error_reporting?
Подробнее здесь: https://stackoverflow.com/questions/711 ... -reporting