Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung von Beispielen für Pfeilfunktionen in PHP

Ausführliche Erläuterung von Beispielen für Pfeilfunktionen in PHP

coldplay.xixi
coldplay.xixinach vorne
2020-07-01 17:44:313516Durchsuche

Ausführliche Erläuterung von Beispielen für Pfeilfunktionen in PHPVerwandte Lernempfehlungen:

PHP-Programmierung vom Einstieg bis zur Beherrschung

PHP7.4

Kurzes Beispiel aus Doctrine DBAL

//老办法
$this->existingSchemaPaths = array_filter($paths, function ($v) use ($names) {
    return in_array($v, $names);
});

// 使用箭头函数的新方法
$this->existingSchemaPaths = array_filter($paths, fn($v) => in_array($v, $names));

Schauen wir uns die Regeln an

sind Schlüsselwörter, keine reservierten Funktionsnamen.

Es kann nur einen Ausdruck geben, nämlich die Return-Anweisung.

    erfordert nicht die Verwendung der Schlüsselwörter
  1. und fn.
  2. Variablen, Bereiche und LSB-Bereiche werden automatisch gebunden.
  3. rereturnSie können Hinweisparameter und Rückgabetypen eingeben. use
  4. Sie können sogar Referenzen
  5. und den Spread-Operator $this
  6. Ein paar Beispiele
  7. //作用域示例
    $discount = 5;
    $items = array_map(fn($item) => $item - $discount, $items);
    
    //类型提示
    $users = array_map(fn(User $user): int => $user->id, $users);
    
    //展开操作符
    function complement(callable $f) {
        return fn(...$args) => !$f(...$args);
    }
    
    //嵌套
    $z = 1;
    $fn = fn($x) => fn($y) => $x * $y + $z;
    
    //有效的函数签名
    fn(array $x) => $x;
    fn(): int => $x;
    fn($x = 42) => $x;
    fn(&$x) => $x;
    fn&($x) => $x;
    fn($x, ...$rest) => $rest;
    &Zukünftiger Geltungsbereich...
  8. Mehrzeilige Pfeilfunktionen

Ermöglicht die Verwendung von Pfeilfunktionen für Funktionen innerhalb einer Klasse.

//现今
class Test {
    public function method() {
        $fn = fn() => var_dump($this);
        $fn(); // object(Test)#1 { ... }

        $fn = static fn() => var_dump($this);
        $fn(); // Error: Using $this when not in object context
    }
}

//也许在未来的某一天
class Test {
    private $foo;
    private $bar;

    fn getFoo() => $this->foo;
    fn getBar() => $this->bar;
}

Meine Lieblingspunkte
  1. Rückrufe können kürzer sein
  2. Nach Variablen ohne das Schlüsselwort
fragen.

  1. Lassen Sie mich wissen, was Sie von diesen Updates halten und was Ihr Lieblingsessen war?
  2. useDanke fürs Lesen.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für Pfeilfunktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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