Empfohlen (kostenlos): PHP7
Neue Funktionen von PHP 7. Gesetz Was ist das? Ich sagte, dass dies eine Schreibmethode ist, die nur in PHP7 und höher verfügbar ist. Wissen Sie nicht? Er sagte, er wisse es nicht.
Ich murmelte in meinem Herzen und hatte vor, mit dem Schreiben dieses Blogs zu beginnen.PHP7 sollte zusätzlich zu den Grundlagen ein modernes PHP sein. Da in PHP7 starke Typdefinitionen und einige grammatikalische Schreibmethoden, wie z. B. kombinierte Vergleichsoperatoren, vorhanden sind, kann define() Arrays und andere Funktionen definieren. Die formelle Einführung beginnt unten, beginnend mit PHP7.0. In Zukunft werden neue Versionen hinzugefügt, und zwar eine nach der anderen. Okay, fangen wir an
PHP 7.0 Skalare TypdeklarationVier Skalartypen:
boolean (Boolescher Typ)Integer (Ganzzahltyp) Float (Gleitkommatyp, auch Double genannt) String (String)
Zwei zusammengesetzte Typen:Array (Array)
ObjektEine Ressource ist eine spezielle Variable, die einen Verweis auf eine externe Ressource enthält. Ressourcen werden durch spezielle Funktionen erstellt und genutzt. Ressourcentypvariablen sind spezielle Handles zum Öffnen von Dateien, Datenbankverbindungen, Grafikbereichen usw.Was wäre, wenn wir ein Array definieren und einen String oder andere Typen zurückgeben würden? Dann wird erVereinfacht ausgedrückt ist ein Skalartyp ein Datentyp, der Variablen definiert.
In PHP5 gibt es Klassennamen, Schnittstellen, Arrays und Rückruffunktionen. In PHP wurden Strings, Integer-, Float- und Bool-Werte hinzugefügt. Schauen wir uns das Beispiel von Everything an. Hier definieren wir, dass $a vom Typ int sein muss. Wenn in der Typfunktion ein String übergeben wird, wird ein Fehler gemeldet. Ändern wir den obigen Code und er ist richtig$a = $a ?? '';Nach dem Login kopieren
Deklaration des Rückgabewerttyps
Der Rückgabewert einer Funktionsmethode kann beispielsweise definiert werden, wenn eine meiner Funktionen einen int-Typ zurückgeben muss, wird sie definitiv einen int zurückgeben . Wenn Sie eine Zeichenfolge zurückgeben, wird ein Fehler gemeldet. Wie folgtfunction typeInt(int $a){ echo $a;}typeInt('sad');// 运行,他讲会报错 Fatal error: Uncaught TypeError: Argument 1 passed to type() must be of the type integer, string givenNach dem Login kopieren
einen Fehler melden
Zum Beispielfunction typeString(string $a){ echo $a;}typeString('sad'); //sad
<?phpfunction returnArray(): array{ return [1, 2, 3, 4];}print_r(returnArray());/*Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) */
Raumschiff-Operator
function returnErrorArray(): array { return '1456546'; } print_r(returnErrorArray()); /* Array Fatal error: Uncaught TypeError: Return value of returnArray() must be of the type array, string returned in */
define Definiere Array
In früheren Versionen von PHP7 war es nicht möglich, Arrays zu definieren## #Unicode-Codepunkt-Übersetzungssyntax
<?php $username = $_GET['user'] ?? 'nobody'; //这两个是等效的 当不存在user 则返回?? 后面的参数 $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; ?>
Anonyme Klassen
// 整数echo 1 <=> 1; // 0 当左边等于右边的时候,返回0echo 1 <=> 2; // -1 当左边小于右边,返回-1echo 2 <=> 1; // 1 当左边大于右边,返回1// 浮点数echo 1.5 <=> 1.5; // 0echo 1.5 <=> 2.5; // -1echo 2.5 <=> 1.5; // 1 // 字符串echo "a" <=> "a"; // 0echo "a" <=> "b"; // -1echo "b" <=> "a"; // 1
PHP 7.1
Nullable-TypenDie Typen von Parametern und Rückgabewerten können jetzt durch Hinzufügen eines Fragezeichens nullbar gemacht werden der Typ. Wenn diese Funktion aktiviert ist, sind die übergebenen Parameter oder das von der Funktion zurückgegebene Ergebnis entweder vom angegebenen Typ oder null .
define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // 输出 "cat"
fügt einen Typ hinzu, der void zurückgibt, z. B.
// PHP 7 之前的代码use some\namespace\ClassA;use some\namespace\ClassB;use some\namespace\ClassC as C;use function some\namespace\fn_a;use function some\namespace\fn_b;use function some\namespace\fn_c;use const some\namespace\ConstA;use const some\namespace\ConstB;use const some\namespace\ConstC;// PHP 7+ 及更高版本的代码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};
Mehrfache Ausnahmeerfassungsverarbeitung
Diese Funktion ist in der täglichen Entwicklung noch relativ häufig echo "\u{aa}"; //ªecho "\u{0000aa}"; //ª echo "\u{9999}"; //香
P HP7 .2 ist die am wenigsten neue Funktion in der PHP7-Serie### Ermöglicht nachgestellte Kommas in gruppierten Namespaces
Beispielsweise ermöglicht<?phpinterface Logger { public function log(string $msg);}class Application { private $logger; public function getLogger(): Logger { return $this->logger; } public function setLogger(Logger $logger) { $this->logger = $logger; }}$app = new Application;$app->setLogger(new class implements Logger { //这里就是匿名类 public function log(string $msg) { echo $msg; }});
das Überschreiben abstrakter Methoden
<?phpfunction testReturn(): ?string{ return 'elePHPant';}var_dump(testReturn()); //string(10) "elePHPant"function testReturn(): ?string{ return null;}var_dump(testReturn()); //NULLfunction test(?string $name){ var_dump($name);}test('elePHPant'); //string(10) "elePHPant"test(null); //NULLtest(); //Uncaught Error: Too few arguments to function test(), 0 passed in...
Neue Objekttypen
<?phpfunction swap(&$left, &$right) : void{ if ($left === $right) { return; } $tmp = $left; $left = $right; $right = $tmp;}$a = 1;$b = 2;var_dump(swap($a, $b), $a, $b);
Klassenattribute unterstützen Typdeklaration
Herzlichen Glückwunsch, dass PHP einen weiteren Schritt in Richtung starker Typisierung gemacht hat
<?php try { // some code } catch (FirstException | SecondException $e) { //用 | 来捕获FirstException异常,或者SecondException 异常 }
Pfeilfunktionen
Pfeilfunktionen bieten eine Möglichkeit, implizite wertbasierte Scope-Binding-Kurzschriftsyntax zu verwenden zur Definition von Funktionen. Es ähnelt der Pfeilfunktion von JS, jedoch mit einem fn. Eine Welle von Beschwerden
<?phpuse Foo\Bar\{ Foo, Bar, Baz,};
Null-Merge-Operator-Unterstützungsmethode
<?phpabstract class A{ abstract function test(string $s);}abstract class B extends A{ // overridden - still maintaining contravariance for parameters and covariance for return abstract function test($s) : int;}
Das obige ist der detaillierte Inhalt vonFassen Sie die neuen Funktionen jeder Version von PHP 7.x zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!