Heim >Backend-Entwicklung >PHP-Tutorial >Was sind die neuen Funktionen von PHP7? Zusammenstellung allgemeiner neuer Funktionen von PHP7
In PHP7 wurden aufgrund der Änderung des größten Teils des Codes der zugrunde liegenden Engine und der Verbesserung der PHP-Leistung durch verschiedene Methoden auch einige neue Syntaxen zu PHP7 hinzugefügt. Die Verwendung dieser Syntaxen kann auch zur Verbesserung der Leistung beitragen. Lassen Sie uns die neuen Funktionen klären, die häufig in PHP7 verwendet werden.
1. ??-Operator (NULL-Koaleszenzoperator)
Ich stelle dies an die erste Stelle, weil ich es für sehr nützlich halte. Verwendung:
$a = $_GET['a'] ?? 1;
Entspricht:
<?php $a = isset($_GET['a']) ? $_GET['a'] : 1;
Wir wissen, dass der ternäre Operator wie folgt verwendet werden kann:
$a ?: 1
Dies basiert jedoch auf $a, das bereits definiert ist die Prämisse. Der neue ??-Operator kann die Beurteilung vereinfachen.
2. Deklaration des Funktionsrückgabewerttyps
Beispiel im offiziellen Dokument (beachten Sie, dass die Seitenlängenparametersyntax von ...
nur in PHP 5.6 verfügbar ist). oben) :
<?php function arraysSum(array ...$arrays): array { return array_map(function(array $array): int { return array_sum($array); }, $arrays); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
Aus diesem Beispiel können wir ersehen, dass jetzt Funktionen (einschließlich anonymer Funktionen) den Typ des Rückgabewerts angeben können.
Das Schreiben dieser Deklaration ähnelt in gewisser Weise Swift:
func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting }
Diese Funktion kann uns helfen, einige Probleme zu vermeiden, die durch die implizite Typkonvertierung von PHP verursacht werden. Wenn Sie vor der Definition einer Funktion über die erwarteten Ergebnisse nachdenken, können Sie unnötige Fehler vermeiden.
Allerdings gibt es hier auch eine Funktion, die Aufmerksamkeit erfordert. PHP 7 fügt eine declare-Direktive hinzu: strict_types
, die den strikten Modus verwendet.
Wenn Sie die Typdeklaration des Rückgabewerts verwenden und diese nicht im strikten Modus deklariert ist und der Rückgabewert nicht vom erwarteten Typ ist, wird PHP ihn trotzdem umwandeln. Wenn es sich jedoch um den strikten Modus handelt, wird ein schwerwiegender Fehler von TypeError
ausgelöst.
Force-Modus:
<?php function foo($a) : int { return $a; } foo(1.0);
Der obige Code kann normal ausgeführt werden und die foo-Funktion gibt int 1 ohne Fehler zurück.
Strikter Modus:
<?php declare(strict_types=1); function foo($a) : int { return $a; } foo(1.0); # PHP Fatal error: Uncaught TypeError: Return value of foo() must be of the type integer, float returned in test.php:6
Nach der Deklaration wird ein schwerwiegender Fehler ausgelöst.
Ist es dem strengen Modus von js ähnlich?
3. Skalare Typdeklaration
Die formale Parametertypdeklaration von Funktionen in PHP 7 kann skalar sein. In PHP 5 kann es nur ein Klassenname, eine Schnittstelle, array
oder callable
sein (PHP 5.4 kann es eine Funktion sein, einschließlich anonymer Funktionen). Jetzt können Sie auch string
, int
, und float
Verstanden. bool
<?php // Coercive mode function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));Es ist zu beachten, dass das oben erwähnte Problem des strengen Modus auch hier gilt: Im erzwungenen Modus (Standard, also erzwungene Typkonvertierung) treten weiterhin Fehler auf die nicht den erwarteten Parametern entsprechen, werden umgewandelt und im strikten Modus wird ein
schwerwiegender Fehler ausgelöst. TypeError
4. Batch-Deklaration verwenden
In PHP 7 können mehrere Klassen oder Funktionen oder const in einem Satz deklariert werden:<?php use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC};Aber Sie immer noch Sie müssen den Namen jeder Klasse, Funktion oder Konstante aufschreiben (es gibt keine
-Methode wie Python). from some import *
Einführung in neue Funktionen von PHP7
Eine kurze Diskussion der wichtigsten neuen Funktionen von PHP7 , eine kurze Diskussion über PHP7
[Übersetzung] Einführung in PHP7: Neue und entfernte Funktionen
Das obige ist der detaillierte Inhalt vonWas sind die neuen Funktionen von PHP7? Zusammenstellung allgemeiner neuer Funktionen von PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!