PHP 8.4 stawia na ergonomię: property hooks (przechwytywanie odczytu/zapisu pól), asymetryczna widoczność, nowy DOM zgodny z HTML5 oraz świeże funkcje tablicowe. Hooki pozwalają tworzyć właściwości obliczane i walidować wartości bez boilerplate’u.

class Locale {
public string $lang;
public string $country {
set (string $v) {
$this->country = strtoupper($v);
}
}
public string $code {
get => "{$this->lang}_{$this->country}";
set (string $v) {
[$this->lang, $this->country] = explode('_',$v,2);
}
}
}
$l = new Locale();
$l->code = 'uk_ua';

Asymetryczna widoczność (public private(set)) — publiczny odczyt, ograniczony zapis — mniej sztucznych getterów.

class Version { 
public private(set) string $v = '8.4';
}
$ver = new Version();
echo $ver->v; // can read // $ver->v = '9.0'; // error write
W tablicach pojawiły się array_find, array_find_key, array_any, array_all — wreszcie idiomatyczne wyszukiwanie i predykaty. 
$animal = array_find(['dog','cat','cow'], fn($x)=>str_starts_with($x,'c')); // 'cat'

Nowy DOM w przestrzeni Dom* wspiera HTML5, querySelector, classList i czytelniejsze API — praca z dokumentami staje się „front-endowo” przyjemna.

$doc = Dom\HTMLDocument::createFromString('Hello');
$node = $doc->querySelector('article');
var_dump($node->classList->contains('featured')); // true

Drobne perełki: łańcuchowanie po new bez nawiasów, RoundingMode dla round(), obiektowy BCMath\Number, mb_trim/mb_ucfirst, metody mikrosekund w DateTime, oraz podklasy PDO (np. Pdo\Pgsql).

$result = round(2.5, 0, RoundingMode::AwayFromZero); // 3 var_dump(new PhpVersion()->getVersion()); // без (new ... )

Uwaga na zmiany: IMAP, OCI8, PDO_OCI, pspell przeniesione do PECL; deprecjacja „implicit nullable”; zmienione zachowanie exit() — sprawdź przewodnik migracji.

Podsumowanie: mniej klejenia kodu, więcej czytelności. Chcesz spróbować 8.4? Uruchom ją na naszym VPS lub planie Hostingu, a kopie rób w S3 storage.