Die neuen Funktionen von PHP 7.1 auf einen Blick
Nullable-Typ
Nullable-Typ wird hauptsächlich für die Deklaration von Parametertypen und Funktionsrückgabewerten verwendet.
Die beiden Hauptformen sind wie folgt:
<?phpfunction answer(): ?int { return null; //ok}function answer(): ?int { return 42; // ok}function say(?string $msg) { if ($msg) { echo $msg; }}
Anhand des Beispiels ist es leicht zu verstehen, dass die Form von ? verwendet wird, um den Typ der Funktion anzugeben Parameter oder Rückgabewert ist entweder ein angegebener Typ oder null.
Diese Methode kann auch zur Definition von Schnittstellenfunktionen verwendet werden:
<?php interface Fooable { function foo(?Fooable $f);}
Aber eines ist zu beachten: Wenn die Funktion selbst den Parametertyp definiert und keinen hat Standardwert, auch wenn Es ist nullbar und kann nicht weggelassen werden, andernfalls wird ein Fehler ausgelöst. Wie folgt:
<?php function foo_nullable(?Bar $bar) {} foo_nullable(new Bar); // 可行foo_nullable(null); // 可行foo_nullable(); // 不可行
Aber wenn die Parameter der obigen Funktion in der Form ?Bar $bar = null definiert sind, ist auch die dritte Schreibweise möglich. Da = null tatsächlich einer Obermenge von ? entspricht, kann für nullfähige Typparameter null als Standardwert festgelegt werden.
Die eckige Klammerabkürzung von list
Wir wissen, dass Arrays vor PHP5.4 nur über array() definiert werden konnten, was der Fall war nach 5.4 hinzugefügt Vereinfachtes Schreiben von [] (es ist immer noch sehr praktisch, 5 Zeichen wegzulassen).
<?php // 5.4 之前$array = array(1, 2, 3);$array = array("a" => 1, "b" => 2, "c" => 3); // 5.4 及之后$array = [1, 2, 3];$array = ["a" => 1, "b" => 2, "c" => 3];
erstreckt sich auf eine andere Frage. Wenn wir den Wert des Arrays verschiedenen Variablen zuweisen möchten, können wir dies über die Liste tun:
<?php list($a, $b, $c) = $array;
Können wir auch [] übergeben? Wie lautet die Abkürzung für „implementieren“?
<?php [$a, $b, $c] = $array;
und der in der Liste angegebene Schlüssel, der in der nächsten Funktion erwähnt wird:
<?php ["a" => $a, "b" => $b, "c" => $c] = $array;
PHP7.1 implementiert diese Funktion. Es ist jedoch zu beachten, dass das im L-Wert angezeigte [] nicht die Abkürzung für Array, sondern die Abkürzung für List () ist.
Aber das ist noch nicht alles. Die neue list()-Implementierung kann nicht nur in lvalues erscheinen, sondern auch in foreach-Schleifen verwendet werden:
<?php foreach ($points as ["x" => $x, "y" => $y]) { var_dump($x, $y);
Aufgrund von Implementierungsproblemen können list() und [] jedoch nicht ineinander verschachtelt verwendet werden:
<?php // 不合法 list([$a, $b], [$c, $d]) = [[1, 2], [3, 4]]; // 不合法 [list($a, $b), list($c, $d)] = [[1, 2], [3, 4]]; // 合法 [[$a, $b], [$c, $d]] = [[1, 2], [3, 4]];
Ermöglicht die Angabe des Schlüssels in der erwähnten Liste
Oben war ich hier, der Schlüssel kann in der neuen list()-Implementierung angegeben werden:
<?php $array = ["a" => 1, "b" => 2, "c" => 3];["a" => $a, "b" => $b, "c" => $c] = $array;
Dies entspricht:
<?php $a = $array['a'];$b = $array['b'];$c = $array['c'];
Der Unterschied zur vorherigen list() ist Die Implementierung entspricht der Tatsache, dass der Schlüssel nur in der numerischen Form 0, 1, 2, 3 vorliegen kann und die Reihenfolge nicht angepasst werden kann. Wenn Sie die folgende Anweisung ausführen:
<?php list($a, $b) = [1 => '1', 2 => '2'];
wird der Fehler PHP error: Undefinierter Offset: 0... angezeigt.
Die neue Implementierung kann die Zuweisung auf folgende Weise anpassen:
<?php list(1 => $a, 2 => $b) = [1 => '1', 2 => '2'];
Im Gegensatz zu Arrays unterstützt die Liste keine gemischten Schlüssel. Die folgende Schreibmethode löst einen Parsing-Fehler aus:
<?php // Parse error: syntax error, ...list($unkeyed, "key" => $keyed) = $array;
Für komplexere Situationen unterstützt die Liste auch das Parsen zusammengesetzter Formen:
<?php $points = [ ["x" => 1, "y" => 2], ["x" => 2, "y" => 1]]; list(list("x" => $x1, "y" => $y1), list("x" => $x2, "y" => $y2)) = $points; $points = [ "first" => [1, 2], "second" => [2, 1]]; list("first" => list($x1, $y1), "second" => list($x2, $y2)) = $points;
und wird in Schleifen verwendet:
<?php $points = [ ["x" => 1, "y" => 2], ["x" => 2, "y" => 1]]; foreach ($points as list("x" => $x, "y" => $y)) { echo "Point at ($x, $y)", PHP_EOL;}
void return Type
PHP7.0 hat die Funktion zur Angabe des Funktionsrückgabetyps hinzugefügt, aber der Rückgabetyp kann nicht als void angegeben werden. Diese Funktion von 7.1 ist eine Ergänzung:
<?php function should_return_nothing(): void { return 1; // Fatal error: A void function must not return a value}
Es gelten beide folgenden Situationen Überprüfung:
<?php function lacks_return(): void { // valid} function returns_nothing(): void { return; // valid}
Eine als Rückgabetyp void definierte Funktion kann keinen Rückgabewert haben, auch wenn sie null zurückgibt:
<?php function returns_one(): void { return 1; // Fatal error: A void function must not return a value} function returns_null(): void { return null; // Fatal error: A void function must not return a value}
Darüber hinaus gilt void nur für Rückgabetypen und Es kann nicht für die Parametertypdeklaration verwendet werden, sonst wird ein Fehler ausgelöst:
<?php function foobar(void $foo) { // Fatal error: void cannot be used as a parameter type}
Die Rückgabetypdeklaration in einer Klassenfunktion kann nicht von einer Unterklasse überschrieben werden, andernfalls wird ein Fehler ausgelöst:
<?php class Foo{ public function bar(): void { } } class Foobar extends Foo{ public function bar(): array { // Fatal error: Declaration of Foobar::bar() must be compatible with Foo::bar(): void }}
Festlegen von Konstantenattributen der Klasse
Diese Funktion ist relativ einfach zu sagen, das heißt, die Konstanten in der Klasse unterstützen jetzt öffentliche, private und geschützte Änderungen:
<?php class Token { // 常量默认为 public const PUBLIC_CONST = 0; // 可以自定义常量的可见范围 private const PRIVATE_CONST = 0; protected const PROTECTED_CONST = 0; public const PUBLIC_CONST_TWO = 0; // 多个常量同时声明只能有一个属性 private const FOO = 1, BAR = 2;}
Darüber hinaus können Konstanten in der Schnittstelle nur öffentliche Attribute sein:
<?php interface ICache { public const PUBLIC = 0; const IMPLICIT_PUBLIC = 1;}
Um den Änderungen gerecht zu werden, wurde die Implementierung der Reflexionsklasse entsprechend erweitert und zwei Methoden hinzugefügt , getReflectionConstant und getReflectionConstants, wurden hinzugefügt, um Konstanten zu erhalten:
<?php class testClass { const TEST_CONST = 'test'; } $obj = new ReflectionClass( "testClass" ); $const = $obj->getReflectionConstant( "TEST_CONST" ); $consts = $obj->getReflectionConstants();
Multi-Bedingungs-Catch
In der vorherigen try...catch-Anweisung kann jeder Catch nur eines festlegen Bedingte Beurteilung:
<?php try { // Some code... } catch (ExceptionType1 $e) { // 处理 ExceptionType1} catch (ExceptionType2 $e) { // 处理 ExceptionType2} catch (Exception $e) { // ...}
In der neuen Implementierung können mehrere Bedingungen in einem Catch festgelegt werden, was der Formbeurteilung von oder entspricht:
<?php try { // Some code...} catch (ExceptionType1 | ExceptionType2 $e) { // 对于 ExceptionType1 和 ExceptionType2 的处理} catch (Exception $e) { // ...}
Das Obige ist die Liste Weitere verwandte Inhalte finden Sie im PHP Chinese Net (www.php.cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
