Die neue Version PHP 8.0 ist endlich da- Die wichtigsten Innovationen und Änderungen als Übersicht

Updates von Computerprogrammen und Programmiersprachen werden häufig veröffentlicht, aber wenn die Entwickler eine neue Version herausgeben, bedeutet das meistens eine große Veränderung.

Nicht anders ist es auch mit der neuen Version vom PHP. Die PHP 8.0 Version bringt viele Innovationen und neue Funktionen in Bezug auf Syntax, Fehlermanagement und allgemein in objektorientierter Programmierung mit.

Bevor Sie aber die neusten Features testen können, muss diese Version auch installiert werden. Um die Wartezeit etwas zu verkürzen, haben Sie die Möglichkeit, auf die Spielothek Merkur Online zuzugreifen und spannende Slot-Spiele zu spielen.

Im folgenden Text finden Sie zusammengefasste Informationen über die wichtigsten Innovationen und Änderungen.

JIT (Just In Time)

Den JIT-Compiler hatte man schon in früheren Versionen versucht zu veröffentlichen, bisher jedoch erfolglos. In der neuen Version PHP 8.0, kann man endlich alle Vorteile des JIT-Compilers voll  ausnutzen.

Die JIT-Erweiterung ist für gewöhnlich deaktiviert und kann durch php.in einfach aktiviert werden.

Ein JIT-Compiler beginnt mit der vereinfachten Zwischensprache und anstatt sie auszuführen, wandelt er sie in Maschinencode um. Je nach Code ist es nicht immer schneller, in Maschinencode zu konvertieren. Der Konvertierungsprozess dauert manchmal länger als die einmalige Ausführung, deswegen analysieren die JIT-Compiler, welche Teile des Codes sie kompilieren sollen. Das wirkt sich direkt auf die Geschwindigkeit aus, aber dies ist meistens in komplexeren Codes bemerkbar.

Da JIT-Compiler recht neu sind, kann man viele Fehler und Updates erwarten.

Neue Funktion:  str_contains

Ob eine Zeichenfolge eine bestimmte Zeichenfolge enthält, konnte man in früheren Versionen von PHP mit den Funktionen strpos und strstr  herausfinden. Dies führte aber schnell zu falschen Ergebnissen und war für neue PHP Entwickler schwer zu merken.

Die neue Funktion str_contains  gibt einen booleschen Wert (falsch oder wahr), ob eine Zeichenfolge enthalten ist oder nicht.

Union Types

Die Unionstypen ermöglichen, dass verschiedene Wertetypen mehr als einen definierten Wert haben. Die Typen werden mit einer vertikalen Linie definiert und akzeptieren sowohl Zeichenfolgen als auch Ganzzahlen.

Obwohl die Unionstypen die Sache etwas verkomplizieren, haben sie auch einige Vorteile. Da die Nutzung von Unionstypen aufgezwungen wird, sind Fehlerstellungen früher erkennbar und die Wahrscheinlichkeit veralteter Daten viel geringer.

Null-Safe Operator

Eine sehr interessante Innovation sind die Null-Safe Operatoren. Der Nullsafe-Operator ist mit der Null-Koaleszenz vergleichbar, mit dem man aber Methoden aufrufen kann. Der Liniencode wird dadurch übersichtlicher und die Lesbarkeit wird erleichtert.

Attribute (auch als annotations bekannt)

Mithilfe dieser Attribute können Metadaten zu Funktionen, Klassen, Eigenschaften und Parametern erstellt werden.

Das Deklarieren von Attributen wird erleichtert und die manuelle Analyse von DocBlocks-Kommentaren entfällt.

PHP 8 Weak Maps

Schon frühere Versionen von PHP beinhalteten den sogenannten Garbage Collector. Um die Programmleistung und den benötigten Speicherplatz zu optimieren, hat dieser längere Zeit nicht benutzte Objekte einfach gelöscht.

Weak Map ist eine Datensammlung, die von Garbage Collector gelöscht werden kann. Für einfachere Programme hat sie keinen Mehrwert und ist eher für komplexe Codes gedacht.

Eine WeakMap ist mit SplObjectStorage vergleichbar, jedoch verhindert die WeakMap nicht, dass Objekte, die außerhalb des Gültigkeitsbereichs liegen, vom Garbage Collector gelöscht werden.

Match Ausdruck (Match expression)

Das ist eine der interessantesten Funktionen, die PHP 8.0 mitbringt. Der neue Match Ausdruck ist eine Alternative zur switch Anweisung, der aber verschiedene Vorteile mit sich bringt. Da Match ein Ausdruck ist, kann sein Ergebnis in einer Variable gespeichert werden. Match Zweige unterstützen nur einzeilige Ausdrücke und benötigen keinen break; Ausdruck.

Autor:
Zurück zur Übersicht aller Beiträge