Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Middle PHP 8+

Що нового в PHP 8.4?

PHP 8.4 (листопад 2024) - головні зміни:

Property hooks - логіка читання й запису властивості без геттерів і сеттерів:

public string $email {
    set => mb_strtolower($value);
}

Асиметрична видимість - різні права на читання й запис: public private(set) string $status.

new без дужок у ланцюжку:

$name = new Profile($user)->displayName();   // раніше: (new Profile($user))->displayName()

Нові функції масивів: array_find(), array_find_key(), array_any(), array_all():

$admin = array_find($users, fn (User $u) => $u->isAdmin());
$allPaid = array_all($orders, fn (Order $o) => $o->isPaid());

Лінива ініціалізація об'єктів (lazy objects) - вбудована підтримка ghost- і proxy-об'єктів, що ініціалізуються при першому зверненні. Корисно для ORM і контейнерів.

#[\Deprecated] - позначати власні функції й методи застарілими, і PHP сам видаватиме E_USER_DEPRECATED при виклику.

Інше:

  • Новий DOM API з підтримкою HTML5 (Dom\HTMLDocument).
  • mb_trim(), mb_ucfirst(), mb_lcfirst().
  • BCMath отримав об'єктний API (BcMath\Number) з перевантаженням операторів.
  • request_parse_body() - розбір тіла для PUT/PATCH.

Застарілим стало: неявно nullable параметри - function f(Type $x = null) тепер видає попередження; правильно ?Type $x = null. Це одна з найчастіших змін при оновленні старого коду.

Докладніше в документації: Реліз PHP 8.4

1

Перевір себе

20 випадкових питань за спробу, після завершення - розбір кожної помилки

Схожі питання