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 <🎜 verwendet werden >
$ids = array_map(fn(Post $post): int => $post->id, $posts);
fn&($x) => $x
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
und function
) vorhanden sind oder nicht. return
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);
innerhalb des kurzen Abschlusses ändern können, dies jedoch keine Auswirkungen auf die Variable $modifier
im äußeren Bereich hat. $modifier
, 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; }
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!