Heim > Backend-Entwicklung > PHP7 > Verwendung der Pfeilfunktion von PHP 7.4

Verwendung der Pfeilfunktion von PHP 7.4

Guanhui
Freigeben: 2023-02-17 14:40:01
nach vorne
3121 Leute haben es durchsucht

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);
Nach dem Login kopieren

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 <🎜 verwendet werden >

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

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

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
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren


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;
}
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage