Endlich ist PHP8.1 draußen! ! ! Einzelheiten finden Sie in der offiziellen PHP-Ankündigung: https://www.php.net/releases/8.1/en.php
PHP 8.1.0 wurde veröffentlicht, diese Version bringt viele Verbesserungen und neue Funktionen.
Aufzählungen
Verwenden Sie eine Aufzählung anstelle einer Reihe von Konstanten und validieren Sie sie sofort.
Schreibgeschützte Eigenschaften
Schreibgeschützte Eigenschaften können nach der Initialisierung, d. h. nachdem ihnen ein Wert zugewiesen wurde, nicht mehr geändert werden. Mit ihnen können Wertobjekte und Datentransferobjekte modelliert werden.
Erstklassige aufrufbare Syntax
Jetzt können Sie eine Referenz auf jede Funktion erhalten.
Neuer Initialisierer
Objekte können jetzt als Standardparameterwerte, statische Variablen und globale Konstanten sowie als Eigenschaftsparameter verwendet werden, wodurch die Verwendung verschachtelter Eigenschaften effektiv möglich wird.
Reiner Schnittpunkttyp
Wenn ein Wert mehrere Typbeschränkungen gleichzeitig erfüllen muss, verwenden Sie den Schnittpunkttyp. Beachten Sie, dass es derzeit nicht möglich ist, Schnittmengen- und Vereinigungstypen wie A&B|C zu mischen.
Niemals den Typ zurückgeben
Eine mit dem Typ „Niemals“ deklarierte Funktion oder Methode bedeutet, dass sie keinen Wert zurückgibt und eine Ausnahme auslöst oder indem sie die(), exit(), trigger_error() oder ähnliches aufruft Beenden Sie die Ausführung des Skripts.
Konstanten der endgültigen Klasse
Konstanten der endgültigen Klasse können deklariert werden, um zu verhindern, dass sie in Unterklassen überschrieben werden.
Explizite Oktalzahlendarstellung
Es ist jetzt möglich, Oktalzahlen mit einem expliziten 0o-Präfix zu schreiben.
Fasern
Fasern sind Grundelemente für die Implementierung einer leichten kooperativen Parallelität. Sie sind eine Möglichkeit, Codeblöcke zu erstellen, die wie Generatoren angehalten und fortgesetzt werden können, jedoch von einer beliebigen Stelle im Stapel aus. Fasern selbst bieten keine Parallelität, eine Ereignisschleife ist dennoch erforderlich. Sie ermöglichen jedoch die gemeinsame Nutzung derselben API durch blockierende und nicht blockierende Implementierungen. Mit Fasern können Sie den Boilerplate-Code loswerden, der zuvor in Promise::then() oder Generator-basierten Coroutinen zu sehen war. Bibliotheken bauen häufig weitere Abstraktionen rund um Fiber auf, sodass keine direkte Interaktion mit ihnen erforderlich ist.
Unterstützung für das Entpacken von Arrays für Arrays mit Zeichenfolgenschlüsseln
PHP unterstützte zuvor das Entpacken innerhalb von Arrays über den Spread-Operator, jedoch nur, wenn das Array ganzzahlige Schlüssel hatte. Arrays können jetzt auch mit String-Schlüsseln entpackt werden.
Leistungsoptimierung
PHP 8.1 hat auch einige Änderungen in der Leistung, darunter:
JIT-Backend für ARM64 (AArch64)
Vererbungs-Caching (um eine erneute Verknüpfung von Klassen in jeder Anfrage zu vermeiden ) )
Schnelle Auflösung von Klassennamen (Vermeidung von Kleinbuchstaben und Hash-Suchen)
Verbesserungen der Timelib- und Ext-/Datumsleistung
SPL-Dateisystem-Iterator-Verbesserungen
Serialisierungs-/Deserialisierungsoptimierung
Einige interne Funktionsoptimierungen (get_declared_classes(), explosion(), strtr(), strnatcmp(), dechex())
JIT-Verbesserungen und -Korrekturen