Neuer Release von PHP 8.4: Überblick über die wichtigsten Änderungen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PHP 8.4 ist da: Was sich geändert hat und warum es wichtig ist



Die Entwickler-Community hat den lang erwarteten Release von PHP 8.4 begrüßt – eine neue Hauptversion einer der beliebtesten Web-Programmiersprachen. Das Update bringt eine Reihe bedeutender Verbesserungen mit sich, darunter die lang erwarteten Property Hooks, asymmetrische Sichtbarkeit und eine wesentliche Leistungsoptimierung. Lassen Sie uns die wichtigsten Änderungen durchgehen, die jeder PHP-Entwickler kennen sollte.



1. Property Hooks

Die größte Neuerung ist die Möglichkeit, Getter und Setter direkt in der Eigenschaftsdeklaration einer Klasse zu definieren, ohne separate Methoden schreiben zu müssen. Dies vereinfacht die Arbeit mit berechneten oder validierten Feldern radikal.



class User{    public string $name {        set => $this->name = trim($value);        get => ucfirst($this->name);    }}


Früher musste man für eine solche Logik separate Methoden getName() und setName() schreiben. Property Hooks machen den Code sauberer und lesbarer.



2. Asymmetrische Sichtbarkeit

Jetzt können unterschiedliche Zugriffsebenen für das Lesen und Schreiben einer Eigenschaft festgelegt werden. Zum Beispiel öffentliches Lesen, aber geschütztes Schreiben:



class Post{    public private(set) string $title;}


Dies erspart die Notwendigkeit, nur zur Zugriffskontrolle Getter und Setter zu erstellen, während die Kapselung erhalten bleibt.



3. Verbesserter JIT und Leistung

In PHP 8.4 wurde der JIT-Compiler (Just-In-Time) erheblich überarbeitet. Die Kernentwickler haben die Heuristik für Kompilierungsentscheidungen verbessert und den Overhead bei der Ausführung von heißen Codepfaden reduziert. Ersten Tests zufolge beträgt der Leistungszuwachs in synthetischen Benchmarks zwischen 10% und 25% im Vergleich zu PHP 8.3.



  • Beschleunigung von Schleifen und rekursiven Funktionen
  • Verbesserte Verarbeitung großer Arrays
  • Reduzierung des Speicherverbrauchs im JIT-Modus um bis zu 15%


4. Neue Syntax: Array-Destrukturierung mit Typen

Es wurde die Möglichkeit hinzugefügt, Typen bei der Array-Destrukturierung anzugeben:



[$name, $age] = ['Ivan', 30]; // war[ string $name, int $age ] = ['Ivan', 30]; // wurde


Dies verbessert die statische Analyse und macht den Code selbstdokumentierend.



5. Änderungen in der Standardbibliothek

  • Neue Funktionen: array_find(), array_find_key(), array_any() und array_all() – für präzisere Array-Operationen.
  • PCRE2-Update: Die Regex-Bibliothek wurde auf Version 10.44 aktualisiert, was einige seltene Fehler behebt.
  • Veraltete Funktionen: session_set_cookie_params() (zugunsten von ini_set()) und mehrere interne Funktionen wurden als veraltet markiert.


6. Veraltungsstatus (Deprecations)

In PHP 8.4 wurden als veraltet markiert:

  • Änderung des Rückgabetyps über #[\\ReturnTypeWillChange] – jetzt ist eine explizite Deklaration erforderlich.
  • Aufruf von isset() auf Nicht-Arrays (z.B.

Empfohlene Bibliotheken