suchen
HeimBackend-EntwicklungPHP7Verwendung der Pfeilfunktion von PHP 7.4

Kurzschluss, auch Pfeilfunktion genannt, ist eine in PHP geschriebene Kurzfunktion. Diese Funktion ist nützlich, wenn Abschlüsse an Funktionen übergeben werden, z. B. bei der Verwendung von array_map- oder array_filter -Funktionen.

So sehen sie aus:

// Post 对象的集合
$posts = [/* … */];
$ids = array_map(fn($post) => $post->id, $posts);
而以前,你必须这样写:
$ids = array_map(function ($post) {
    return $post->id;
}, $posts);

Fassen wir zusammen, wie kurze Abschlussfunktionen verwendet werden .

  • Verfügbar in PHP 7.4

  • Beginnen Sie mit dem Schlüsselwort fn

  • kann nur eines enthalten Ausdruck, das heißt, der Rückgabeausdruck

  • Rückgabeschlüsselwort kann ignoriert werden

  • Parameter und Rückgabetyphinweise können für jeden Typ

Eine strengere Typbeschränkung im obigen Beispiel kann wie folgt geschrieben werden:

$ids = array_map(fn(Post $post): int => $post->id, $posts);

Es gibt zwei Punkte, die erwähnt werden müssen:

  • ermöglicht auch die Verwendung des Spread-Operators

  • ermöglicht Referenzen, und beide Parameter können als Rückgabewerte verwendet werden

if Sie möchten ein Ergebnis per Referenz zurückgeben, die folgende Syntax sollte verwendet werden:

fn&($x) => $x

Kurz gesagt, kurze Verschlüsse funktionieren genauso wie gewöhnliche Verschlüsse, außer dass nur ein Ausdruck zulässig ist.

Einzeilige Zeile

Sie sollten es richtig verstehen: Ein kurzer Abschluss kann nur einen Ausdruck haben. Dies bedeutet, dass im Verschlusskörper keine Mehrfachleitungen vorhanden sein können.

Der Grund ist folgender: Der Zweck von Kurzschließungen besteht darin, Redundanz zu reduzieren. Natürlich ist

auf jeden Fall kürzer als fn . RFC-Erfinder Nikita Popov glaubt jedoch, dass die Verwendung von Abschlüssen noch weniger Vorteile bringt, wenn Sie mit Funktionen arbeiten, die mehrzeilige Ausdrücke sind. function

Schließlich ist die Definition von mehrzeiligen Abschlüssen bereits überflüssig, sodass es keinen großen Unterschied macht, ob diese beiden Schlüsselwörter (

und function ) vorhanden sind oder nicht. return

Ob Sie dieser Sichtweise zustimmen, bleibt Ihnen überlassen. Während mir in meinen Projekten viele Szenarien für einzeilige Abschlüsse einfallen, gibt es auch viele Szenarien für mehrzeilige Abschlüsse, und ich persönlich würde für diese Fälle eine kürzere Syntax bevorzugen.

Es gibt jedoch Hoffnung: In Zukunft könnten mehrzeilige Kurzschlüsse hinzugefügt werden, aber das wäre auch ein separater RFC.

Der Wert des äußeren Bereichs

Ein weiteres bemerkenswertes Merkmal von kurzen Schließungen und gewöhnlichen Schließungen ist, dass kurze Schließungen auf die Außenseite zugreifen können, ohne die Schlüsselwort-Bereichsdaten zu verwenden.

$modifier = 5;
array_map(fn($x) => $x * $modifier, $numbers);

Es ist zu beachten, dass Variablen im äußeren Bereich nicht geändert werden können. Weil es eher eine Wertübergabe als eine Referenzübergabe ist. Das bedeutet, dass Sie die Variable

innerhalb des kurzen Abschlusses ändern können, dies jedoch keine Auswirkungen auf die Variable $modifier im äußeren Bereich hat. $modifier

Natürlich gibt es eine Ausnahme, und das ist das Schlüsselwort

, das genau wie bei einem normalen Verschluss funktioniert: $this

array_map(fn($x) => $x * $this->modifier, $numbers);


Entwicklungsaussichten

Die bereits erwähnten Mehrlinienschließungen sind noch eine Entwicklungsmöglichkeit in der Zukunft. Eine andere Idee, die mir in den Sinn kommt, ist, die Verwendung von kurzen Abschlüssen in Klassen zu ermöglichen, wie z. B.

und getters Funktionen setters

class Post {
    private $title;
    fn getTitle() => $this->title;
}

Alles in allem sind kurze Abschlüsse eine sehr willkommene Funktion, obwohl es sie gibt viele Bereiche mit Verbesserungsbedarf. Am wahrscheinlichsten ist die mehrzeilige Schließung.

Das obige ist der detaillierte Inhalt vonVerwendung der Pfeilfunktion von PHP 7.4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.