PHP 8.5 та 9.0: Що змінюється, що ламається та що вам сподобається

PHP продовжує еволюціонувати, приносячи нові можливості та покращення, які значно полегшують роботу розробників і покращують продуктивність. Зокрема, PHP 8.5, реліз якого очікується на 20 листопада 2025 року, привносить нові функції, що роблять розробку ще зручнішою. Однак вже після нього на нас чекає наступна версія — PHP 9.0, з низкою суттєвих змін.

У PHP 8.5 з’являються нові функції та константи, зокрема:
- Функція curlmultiget_handles() для отримання всіх дескрипторів з багатопоточних сесій cURL. Це значно спрощує управління кількома одночасними запитами.
- Константа PHPBUILDDATE, яка допомагає визначити, коли була зібрана ваша PHP-бінарна версія. Це корисно для налагодження та аудиту.
- Функції getexceptionhandler() та geterrorhandler(), що дозволяють отримати поточні обробники винятків та помилок.

Також з PHP 8.5 фатальні помилки тепер включають повні стеки викликів, що значно полегшує їх налагодження. Наприклад, ви одразу побачите, де саме сталася помилка в складних ланцюгах викликів, як це показано у наведеному прикладі.

Водночас, PHP 9.0 принесе чимало змін, зокрема:
- Строге інкрементування рядків. Якщо раніше PHP дозволяв інкрементувати рядки, тепер для таких операцій потрібно буде використовувати спеціальну функцію str_increment().
- Видалення старого формату інтерполяції рядків, що дозволяє уникнути плутанини та зменшує ймовірність помилок.
- Суворіша обробка помилок, зокрема для неоголошених змінних, що тепер спричиняють помилку замість тих попереджень, що були раніше.

PHP 9.0 також усуває застарілі функції, зокрема старий інтерфейс Serializable, що поступово замінюється на новіші методи, такі як __serialize() та __unserialize().

Однією з головних змін буде покращення синтаксису та підписів функцій, а також введення більш чітких і спеціалізованих функцій для зменшення можливих помилок і покращення читабельності коду. Функції, які раніше могли виконувати кілька завдань, тепер будуть розділені на окремі методи для конкретних операцій, що спростить розуміння і використання коду.

У цілому, ці зміни орієнтовані на поліпшення безпеки, спрощення коду та підвищення ефективності розробки. Розробники повинні підготуватися до цих змін, оскільки PHP 9.0 вимагатиме суворішої типізації і чіткішого дотримання правил.

Щоб залишатися в курсі, важливо регулярно стежити за новими змінами та RFC для PHP, щоб бути готовим до нововведень. Ці оновлення зроблять вашу роботу більш безпечною, швидкою і надійною, адже з кожною новою версією PHP наближається до більш сучасного і потужного інструменту для розробки.

Перекладено з: PHP 8.5 & 9.0: What’s Changing, What’s Breaking, and What You’ll Love