Разные уровни ошибок PHP на локальном компе и на сервере?
На серваке стоит PHP 8.2.7, дома PHP 8.3
В php.ini и там и там включен максимальный вывод всех ошибок. При этом на сервере, например ошибка о невозможности динамического создания переменной вылетает:
"Deprecated: Creation of dynamic property User::$name is deprecated in......."
а на локальном компьютере всё тихо, скрипт работает, как буд-то ни в чём не бывало.
Любые предложения, рад всему, потому как уже весь череп сломал. Жутко мешает при разработке, приходится все новшества перепроверять на боевом сервере.
Дополнительно:
ну так может стоить в первую очередь сделать что бы везде была одна версия?
Ответы:
на разных версиях php ошибки имеют разный приоритет или могут отсутствовать
для того чтобы понять отличия смотри миграции между версиями https://www.php.net/manual/ru/appendices.php
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Различия в уровнях ошибок PHP между локальным компьютером и сервером могут возникать из-за различий в настройках конфигурации PHP на этих двух средах. Вот несколько причин, почему уровни ошибок могут отличаться:
1. **Уровень отображения ошибок**: На локальном компьютере вы, возможно, установили значение `error_reporting` на `E_ALL`, что означает отображение всех типов ошибок, включая предупреждения и уведомления. На сервере это значение может быть установлено на более низкий уровень, например, `E_ERROR`, что означает отображение только фатальных ошибок.
2. **Установки php.ini**: На сервере могут быть установлены различные параметры в файле `php.ini`, такие как `display_errors` и `error_reporting`, которые могут влиять на отображение и регистрацию ошибок.
3. **Различия в версиях PHP**: На вашем лестопе может быть установлена более новая или старая версия PHP, чем на сервере, что также может привести к различиям в уровнях ошибок.
4. **Настройки хостинга**: Некоторые хостинг-провайдеры могут иметь свои собственные настройки PHP, которые могут отличаться от стандартных настроек.
Чтобы решить проблему с различиями в уровнях ошибок, вам следует:
- Проверить и сравнить значения `error_reporting` и `display_errors` на локальном компьютере и сервере.
- Убедитесь, что у вас установлена одинаковая версия PHP на обеих средах.
- Просмотрите файл `php.ini` на сервере и убедитесь, что настройки соответствуют вашим ожиданиям.
- Если вы не можете изменить настройки на сервере, попробуйте установить локально среду, которая будет более точно отражать настройки сервера.
Приведу пример кода на PHP, который поможет вам увидеть текущие настройки ошибок:
echo 'error_reporting: ' . error_reporting() . '<br>'; echo 'display_errors: ' . ini_get('display_errors') . '<br>';
Этот код выведет текущие значения `error_reporting` и `display_errors`. Попробуйте запустить его как на локальном компьютере, так и на сервере, чтобы увидеть различия в настройках.