PHP 8.4: что реально полезного завезли
2026-08-10 10:00:00Каждый релиз PHP кто-то говорит «ну наконец-то нормальный язык», а кто-то — «опять сахар». Разберём по-честному, что из PHP 8.4 реально меняет повседневный код.
Property hooks
Больше не нужно городить приватное поле + геттер + сеттер ради простой нормализации значения:
class User
{
public string $name {
set(string $value) {
$this->name = trim($value);
}
get => ucfirst($this->name);
}
}
$u = new User();
$u->name = ' alex ';
echo $u->name; // "Alex"
Раньше это были 8-10 строк бойлерплейта на каждое поле. Теперь — логика прямо на объявлении свойства,
без магии __get/__set и без потери подсказок в IDE.
Asymmetric visibility
Наконец можно сделать свойство публично читаемым, но приватно изменяемым, без ритуала «приватное поле + публичный геттер»:
class Order
{
public private(set) string $status = 'new';
public function markPaid(): void
{
$this->status = 'paid';
}
}
Снаружи $order->status читается свободно, а поменять его можно только изнутри класса.
Это ровно то, ради чего раньше писали десятки геттеров без сеттеров.
array_find, array_any, array_all
Мелочь, но приятная — не нужно больше руками писать foreach ради банальной проверки:
$hasAdmin = array_any($users, fn($u) => $u['role'] === 'admin');
$firstAdmin = array_find($users, fn($u) => $u['role'] === 'admin');
Итог
Ничего революционного, но каждая из этих фич убирает конкретный кусок бойлерплейта, который раньше писали руками в каждом втором проекте. Обновляться стоит хотя бы ради property hooks.