Was ist neu in PHP 8.3?
PHP entwickelt sich weiter: Version 8.3 bringt effiziente JSON-Validierung, eine vereinheitlichte Fehlerbehandlung und dynamischen Zugriff auf Klassenkonstanten. Ein Überblick über die wichtigsten Neuerungen.
JSON-Validierung neu gedacht: json_validate
Mit PHP arbeite ich schon sehr lange und habe darin Tausende Codezeilen geschrieben und überarbeitet. Die bewährte Sprache steht nun vor ihrer nächsten Version: PHP 8.3 soll Ende des Monats offiziell erscheinen. In diesem Beitrag sehen wir uns die wichtigsten Änderungen dieses Releases an.
JSON-Validierung neu gedacht: json_validate
Die ewige Frage: Ist das gültiges JSON oder nicht? Bisher musste man dafür den kompletten String mit json_decode parsen und abwarten, ob das gelingt. Die neue Version bringt hier eine echte Verbesserung: die Funktion json_validate. Sie liefert dasselbe zuverlässige Ergebnis, verbraucht dabei aber deutlich weniger Ressourcen.
Einheitliche Fehlerbehandlung in unserialize
Die berüchtigte Funktion unserialize() war bisher dafür bekannt, Fehler uneinheitlich zu melden – mal als E_NOTICE, mal als E_WARNING. Mit Version 8.3 ändert sich das grundlegend: Sie können sich jetzt darauf verlassen, dass jedes Mal eine Exception geworfen wird, und müssen sich nicht mehr mit den Eigenheiten von E_NOTICE herumschlagen.
Das neue Attribut #[Override]
Eine wertvolle Ergänzung ist das Attribut #[Override]. Damit kennzeichnen Sie Methoden, die eine Methode der Elternklasse überschreiben sollen. Wird die Methode in der Elternklasse umbenannt, sodass die mit #[Override] markierte Methode nichts mehr überschreibt, löst PHP nun einen Fehler aus.
Dynamischer Zugriff auf Klassenkonstanten
Vor Version 8.3 ließen sich Klassenkonstanten nur statisch oder über Reflection abrufen. Ab 8.3 ist auch ein dynamischer Zugriff möglich: Der Name der Konstante kann über eine Variable angegeben werden.
Readonly-Properties in __clone() ändern
Bereits in einem früheren Release hat PHP readonly-Properties eingeführt, die bei der Instanziierung einer Klasse gesetzt werden. Beim Klonen stießen diese Properties jedoch an Grenzen: Möglich war nur eine flache Kopie.
Version 8.3 hebt diese Einschränkung auf: Innerhalb der Methode __clone() lassen sich readonly-Properties nun neu setzen, sodass echtes Klonen möglich wird. Neben diesen zentralen Neuerungen gibt es weitere Änderungen – etwa spezifische Fehler bei der Initialisierung von DateInterval-Objekten wie DateMalformedIntervalStringException, Verbesserungen an der Funktion mb_str_pad sowie spürbare Performance-Gewinne bei array_sum() und array_product().
PHP 8.3 wurde am 23. November 2023 veröffentlicht. Vor dem Release wurde die Version in drei Alpha-, drei Beta- und sechs Release-Candidate-Versionen getestet.
Einen vollständigen Überblick über alle Änderungen finden Sie auf php.net