Heim  >  Artikel  >  PHP 7.4.0 wurde gerade veröffentlicht! Werfen wir einen Blick auf die neuen Funktionen

PHP 7.4.0 wurde gerade veröffentlicht! Werfen wir einen Blick auf die neuen Funktionen

藏色散人
藏色散人nach vorne
2019-11-30 10:34:155378Durchsuche

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 = [&#39;apple&#39;, &#39;pear&#39;];
$fruits = [&#39;banana&#39;, &#39;orange&#39;, ...$parts, &#39;watermelon&#39;];
// [&#39;banana&#39;, &#39;orange&#39;, &#39;apple&#39;, &#39;pear&#39;, &#39;watermelon&#39;];
?>

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:oschina.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen