PHP 7.4.0 wird veröffentlicht. Diese Version markiert das vierte Feature-Update der PHP 7-Serie.
PHP 7.4.0 bringt viele Verbesserungen und einige neue Funktionen mit sich, darunter:
1.Typisierte EigenschaftenTypattribute
Klassenattribute unterstützen jetzt Typdeklarationen. Das folgende Beispiel erzwingt, dass $User-> nur int-Werte zugewiesen werden, und $User->
<?php class User { public int $id; public string $name; } ?>
2.PfeilfunktionenPfeilfunktionen
Pfeilfunktionen bieten eine Möglichkeit, implizite By-Value-Funktionen in Kurzform zu definieren Syntax für domänengebundene Funktionen.
<?php $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); // $nums = array(10, 20, 30, 40); ?>
Abschlüsse können äußerst hilfreich sein, wenn sie an Funktionen wie array_map oder array_filter übergeben werden.
// A collection of Post objects $posts = [/* … */]; $ids = array_map(fn($post) => $post->id, $posts);
3.Begrenzte Rückgabetyp-Kovarianz und Argumenttyp-KontravarianzBegrenzte Rückgabetyp-Kovarianz und Parametertyp-Kontravarianz
Vollständig Kovarianz-/Kontravarianzunterstützung wird nur bei Verwendung von Autoloading bereitgestellt. Innerhalb einer einzelnen Datei können nur nichtzyklische Typreferenzen verwendet werden, da alle Klassen verfügbar sein müssen, bevor sie referenziert werden.
<?php class A {} class B extends A {} class Producer { public function method(): A {} } class ChildProducer extends Producer { public function method(): B {} } ?>
4.Innere Arrays entpackenInterne Arrays packen
<?php $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; ?>
5.Numerisches Literal TrennzeichenNumerisches Literaltrennzeichen
Numerische Literale können Unterstriche zwischen Zahlen enthalten.
<?php 6.674_083e-11; // float 299_792_458; // decimal 0xCAFE_F00D; // hexadecimal 0b0101_1111; // binary ?>
6.Schwache ReferenzenSchwache Referenzen
Schwache Referenzen ermöglichen es Programmierern, Referenzen auf Objekte beizubehalten, ohne dass dies verhindert wird Objekt vor der Zerstörung.
7.Ausnahmen von __toString() zulassenAuslösen von Ausnahmen von __toString() zulassen
Jetzt Ausnahmen zulassen von __toString() __toString() löst eine Ausnahme aus, die zuvor zu einem schwerwiegenden Fehler führte. Vorhandene behebbare schwerwiegende Fehler bei der String-Konvertierung wurden in Fehlerausnahmen umgewandelt.
8.Opcache-VorladenOpcache-Vorladen
Unterstützung für das Opcache-Vorladen hinzugefügt.
Darüber hinaus gibt es einige veraltete Elemente und einige Erweiterungen wurden aus dem Kern entfernt. Einzelheiten finden Sie unter:
https://www.php.net
https: //www.php.net/manual/zh/migration74.new-features.php