PHP 8.3 wurde im November 2023 veröffentlicht und bringt eine Reihe von Features mit, die den Code lesbarer, typsicherer und performanter machen. In diesem Artikel schauen wir uns die wichtigsten Änderungen im Detail an – mit praktischen Codebeispielen.
Typed Class Constants
Eines der meistgewünschten Features ist endlich da: Klassenkonstanten können jetzt typisiert werden. Das verhindert versehentliches Überschreiben mit einem falschen Typ in Unterklassen.
class BlogPost {
const string STATUS_DRAFT = 'draft';
const string STATUS_PUBLISHED = 'published';
const int MAX_TAGS = 10;
}
Versucht eine Unterklasse, die Konstante mit einem anderen Typ zu überschreiben, wirft PHP einen Fehler. Das macht Interfaces und abstrakte Klassen deutlich robuster.
Readonly-Properties in anonymen Klassen
Readonly-Properties, in PHP 8.1 eingeführt, können nun auch in anonymen Klassen verwendet werden. Das ist besonders nützlich für Value-Objects und DTOs:
$point = new class(3, 7) {
public function __construct(
public readonly int $x,
public readonly int $y,
) {}
};
Verbesserte Fehlermeldungen
PHP 8.3 liefert präzisere Fehlermeldungen bei häufigen Fehlern. Beispielsweise wird bei einem TypeError jetzt genau der Aufruf-Stack mit Typen angezeigt.
„Bessere Fehlermeldungen sind oft wertvoller als neue Features – sie sparen reale Debugging-Zeit."
— PHP-Internals Mailingliste
Weitere Neuerungen auf einen Blick
- → json_validate(): Neue Funktion zum Prüfen von JSON-Strings ohne vollständiges Parsen.
- → array_is_list(): Schon in PHP 8.1 – aber jetzt mit besserer Performance im Core.
-
→
Dynamische Klassen-Konstanten:
ClassName::{$const}ist nun möglich. - → Deprecated-Notices bei dynamischen Properties wurden verschärft und sind jetzt standardmäßig aktiver.
Fazit
PHP 8.3 ist ein solides Release, das bestehende Konzepte konsequent ausbaut. Typed Class Constants und die verbesserten Fehlermeldungen sind die praxisrelevantesten Neuerungen. Das Update lohnt sich – besonders für Teams, die auf Typsicherheit setzen.
In einem der nächsten Artikel schauen wir uns an, wie du dein Laravel-Projekt sicher auf PHP 8.3 migrierst.