PHP 8.3 – was erwartet uns?

Die neue Version von PHP 8.3, ist in Arbeit und wird bald verfügbar sein. Wie die meisten neuen Versionen bringt auch 8.3 einige Verbesserungen und Neuerungen mit sich. In diesem Artikel stellen wir Ihnen die wichtigsten Änderungen vor, die Sie in PHP 8.3 erwarten können.

Was ist neu in PHP 8.3?

In PHP 8.3 gibt es einige neue Funktionen und Verbesserungen. Zum Beispiel wurde die Funktion ‘fetch()’ hinzugefügt, mit der man Daten aus einem Result-Objekt abrufen kann. Auch die Array-Funktion ‘array_key_first()’ wurde hinzugefügt. Diese Funktion gibt den ersten Schlüssel eines Arrays zurück.

Weitere Neuerungen in PHP 8.3 sind:

– Die Unterstützung für JIT (Just-in-Time Compilation)
– Verbesserte Runtimes for modern CPUs
– New on demand memory manager
– Support for the Standard ML programming language

Kompatibilität mit vorherigen Versionen

PHP 8.3 baut auf den Änderungen in PHP 8.0 auf und ist kompatibel mit vorherigen Versionen. Dies bedeutet, dass die meisten Skripts, die unter PHP 8.0 oder höher funktionieren, auch unter PHP 8.3 funktionieren sollten. Allerdings gibt es einige Änderungen, die Sie beachten sollten. Zum Beispiel wurde der Typ »resource« in PHP 8.3 entfernt. Dies bedeutet, dass bestimmte Funktionen, die mit Ressourcen arbeiten, möglicherweise nicht mehr funktionieren. Weiterhin wurden einige Funktionen in PHP 8.3 entfernt oder umbenannt. Wenn Sie also ein Skript haben, das eine dieser Funktionen verwendet, müssen Sie es möglicherweise anpassen oder ersetzen.

Vorteile und Nachteile von PHP 8.3

PHP 8.3 bringt einige neue Funktionen und Änderungen mit sich. Einige dieser Neuerungen können als Verbesserungen angesehen werden, während andere Nachteile mit sich bringen. In diesem Artikel werden die Vor- und Nachteile von PHP 8.3 untersucht.

Einer der größten Vorteile von PHP 8.3 ist die Unterstützung für JIT (Just-In-Time) Compilation. Dies ermöglicht es dem Zend Engine, PHP-Code in native Maschinensprache zu compilieren und so die Ausführungsgeschwindigkeit zu erhöhen. Auch die Speicheranforderungen werden verringert, da der Code nicht mehr interpretiert werden muss. Ferner sind einige neue Sprachfeatures geplant, darunter Union Types 2.0, Pattern Matching sowie Support für Clang 9 und LLVM 10.

Allerdings gibt es auch einige Nachteile bei der Migration auf PHP 8.3. Zum einen kann es zu Kompatibilitätsproblemen mit älteren Versionen von PHP kommen. Auch die JIT-Compilation kann zu Problemen führen, da einige Hosting-Anbieter sie bisher nicht unterstützen.

Die neue JIT-Compiler-Engine

Mit der neuen JIT-Compiler-Engine in PHP 8.3 soll die Ausführung von PHP-Code deutlich beschleunigt werden. Bisher wurde der PHP-Interpreter bei jedem Aufruf eines Skripts neu gestartet, was relativ viel Zeit in Anspruch nahm. Mit der neuen Engine soll dieser Prozess deutlich optimiert werden.

Die neue Engine ist bereits in der aktuellen Entwicklungsversion von PHP 8.3 verfügbar und kann getestet werden. Allerdings ist sie bis jetzt nicht vollständig ausgereift und es könnten noch Fehler auftreten. Sobald PHP 8.3 final veröffentlicht wird, sollte die neue Engine aber stabil laufen und eine spürbare Geschwindigkeitssteigerung mit sich bringen.

Der neue Typofinder

Die neue Typofinder-Funktion in PHP 8.3 soll die Suche nach bestimmten Typen von Variablen erleichtern. Bisher mussten Sie bei der Suche nach einem bestimmten Typ eine reguläre Ausdruckssuche durchführen, was sehr zeitaufwendig sein konnte. Mit der neuen Funktion können Sie jetzt einfach nach dem gewünschten Typ suchen und die Ergebnisse werden sofort angezeigt.

Warp-Speed Vergleiche

1. PHP 8.3 ist schneller als sein Vorgänger
2. Die neue JIT-Compiler macht es möglich
3. Dank der Just-In-Time (JIT) Kompilierung kann PHP 8.3 bis zu 3x schneller sein als PHP 7
4. Das bedeutet, dass Webseiten und Anwendungen, die auf PHP 8.3 laufen, deutlich schneller sein werden.

Methoden zum schnelleren Berechnen

Im vergangenen Jahr wurde die PHP-Version 8.0 veröffentlicht, die einige große Neuerungen mit sich brachte, unter anderem einen JIT-Compiler. Mit der neuen Version 8.3 soll nun die Performance weiter verbessert werden.

Ein neuer Algorithmus zum Berechnen von Fakultäten (n!), der in PHP 8.3 enthalten sein wird, soll bereits jetzt um das 3–5 Fache schneller sein als der bisherige Algorithmus (siehe Benchmark).

Weitere Verbesserungen betreffen das Generieren von Hashwerten sowie das Encodieren und Decodieren von Unicode-Zeichen.

Saner operator overloading

Mit dem neuen PHP 8.3 Release kommt eine Reihe von Verbesserungen für den Umgang mit Operator-Methoden. Die Änderungen sollen dazu beitragen, den Code besser lesbar und wartbar zu machen und Fehler zu vermeiden.

Bisher war es möglich, jeden beliebigen Operator als Methode zu definieren. Das kann zu einem sehr unübersichtlichen Code führen, insbesondere wenn mehrere Operatoren in einer Klasse definiert sind. Mit PHP 8.3 gibt es jetzt einige Einschränkungen bei der Definition von Operator-Methoden. So dürfen bestimmte Operatoren nur noch unter bestimmten Bedingungen definiert werden.

Eine weitere Neuerung ist die Möglichkeit, mithilfe des »spaceship«-Operators (=>) festzustellen, ob ein Wert kleiner, gleich oder größer als ein anderer Wert ist. Dies ist besonders hilfreich, wenn man mit sortierten Arrays arbeitet.

Reflection API

Die Reflection API ist ein Teil der PHP-Kernfunktionalität, sodass man in der Regel keine zusätzliche Bibliothek benötigt. Sie ermöglicht es Entwicklern, Metadaten von Klassen, Methoden und Funktionen abzufragen.

Mit PHP 8.3 sind einige Verbesserungen an der Reflection API vorgenommen worden. Die neue Version enthält eine Reihe von Neuerungen sowie Fehlerbehebungen und Performanceverbesserungen. Insgesamt soll das Arbeiten mit der Reflection API nun einfacher sein als zuvor.

FFI – Foreign Function Interface

FFI ist ein Foreign Function Interface für PHP, mit dem ausführbare Binärdateien in anderen Sprachen genutzt werden können.

Das Interface ermöglicht es Entwicklern, Funktionen aus anderen Sprachen in PHP-Skripte zu integrieren und so die Leistungsfähigkeit von PHP-Anwendungen zu steigern. Die neue Funktion wird mit der Version 8.3 von PHP verfügbar sein und soll vorwiegend für die Entwicklung von Erweiterungen und Anwendungen nützlich sein, die auf andere Systeme oder Komponenten zugreifen müssen.

Rector und PHPStan für einen schnelleren Start

Rector ist ein automatisierter Code-Rewriter, der Ihnen beim Umstieg auf PHP 8.3 helfen kann. Mit seiner Hilfe können Sie neue Funktionen in Ihren bestehenden Code integrieren und sofort von den Vorteilen des neuen Standards profitieren.

PHPStan ist ein statischer Code-Analyse-Tool, das Ihnen bei der Suche nach Fehlern und Inkonsistenzen in Ihrem Code hilft. Dank seiner umfangreichen Prüfungskriterien können Sie schnell problematische Stellen identifizieren und beheben. So können Sie sicherstellen, dass Ihr Code auch unter den neuen Bedingungen fehlerfrei läuft.

Fazit über PHP 8.3

Allgemein gesehen ist PHP 8.3 eine sehr empfehlenswerte Upgrade-Version. Die meisten Neuerungen sind gut durchdacht und können die Entwicklung erheblich vereinfachen oder beschleunigen. Natürlich gibt es auch ein paar kleine Änderungen, die manchmal etwas ungewohnt erscheinen, aber insgesamt ist PHP 8.3 ein großer Schritt nach vorn für die Sprache.

Jan Domke

Prompt Engineer | Social Media Manager | Hosting Manager | Webadministrator

Privat betreibe ich seit Ende 2021 das Online-Magazin SEO4Business und machte damit mein Beruf zum Hobby.
Seit 2019 arbeite ich als Senior Hosting Manager, bei einer der größten Internet und Marketing Agentur Deutschlands und erweitere somit stetig meinen Horizont.

Jan Domke