Прокачиваю проект на PHP 8.4, и заметил, что некоторые скрипты из прошлых версий начали вести себя странно. В основном проблемы с типами — раньше спокойно проглатывалось, а теперь вылазят ошибки на строгую типизацию. Вот что поймал лично:
- Объявления функций с несоответствием типов параметров или возвращаемого значения. В старом коде часто нет строгих типов, а новая версия их уже требует.
- Deprecated функции начали шуметь в логи. Если в коде использовались устаревшие функции или синтаксис, их стоит заменить заранее.
- Проблемы с null-safe операторами и новыми возможностями, если их пытаешься «подогнать» под старый код.
- Вызовы метода с неопределёнными переменными или свойствами стали вызывать фатальные ошибки, а раньше просто молча игнорировались.
С PHP 8.4 часто вижу, что старый код начинает трещать именно из-за более строгой типизации — раньше было проще, функции не ругались, если типы не совпадали. Ещё deprecated-функции вылезают в логи, и если их не переделать, возникает куча предупреждений. Плюс новые операторы типа null-safe иногда ломают логику, если их неправильно вписать в старый код. В общем, стоит очень аккуратно с типами и обновлять устаревшие штуки.