Anonyme Funktionen in PHP8.0

王林
Freigeben: 2023-05-14 09:56:01
Original
1303 Leute haben es durchsucht

PHP8.0 ist die neueste Version der Programmiersprache PHP. Ein wichtiges Update sind Verbesserungen und Erweiterungen anonymer Funktionen. Eine anonyme Funktion (auch Abschluss genannt) ist ein besonderer Funktionstyp, der zur Laufzeit dynamisch erstellt und an andere Funktionen übergeben oder in einer Variablen gespeichert werden kann. In PHP sind anonyme Funktionen für fortgeschrittene Programmierung und Webentwicklung von entscheidender Bedeutung.

PHP8.0 bietet einige neue Syntax und Funktionen, die anonyme Funktionen flexibler und benutzerfreundlicher machen können. Einige der Aktualisierungen sind wie folgt:

  1. Typdeklarationen für Funktionsparameter

In PHP8.0 können anonyme Funktionen die Typen ihrer Parameter deklarieren. Dies bedeutet, dass die Typen von Funktionsparametern durch Typeinschränkungen eingeschränkt werden können, um sicherzustellen, dass die richtigen Parametertypen übergeben werden. Der folgende Code verwendet beispielsweise eine anonyme Funktion, um die Summe zweier Ganzzahlen zu berechnen und das Ergebnis auszugeben:

$sum = function(int $a, int $b) {
   echo $a + $b;
};

$sum(2, 3); // 输出 5
Nach dem Login kopieren
  1. Verwenden Sie ::class, um den Klassennamen zu erhalten

In PHP8.0 können Sie verwenden: :class-Syntax, um den vollständig qualifizierten Namen einer Klasse zu erhalten, d. h. Klassenname. Dies erleichtert das Referenzieren von Klassen in anonymen Funktionen, zum Beispiel: ::class语法来获取类的完全限定名称,即类名。这样可以在匿名函数中更方便地引用类,例如:

class Foo {
   public function bar() {
      $callback = function() {
         echo Foo::class; // 输出 Foo
      };
      $callback();
   }
}

$foo = new Foo();
$foo->bar();
Nach dem Login kopieren
  1. 扩展的箭头函数语法

箭头函数是PHP7.4中引入的一种新类型的匿名函数,它可以更紧凑和简洁地编写函数。在PHP8.0中,箭头函数的语法得到了进一步的扩展。现在,可以将“use”语句放在箭头函数的括号外面,在箭头函数体中只使用变量名即可,例如:

$multiplier = 2;
$numbers = [1, 2, 3];

$result = array_map(fn($num) => $num * $multiplier, $numbers);

print_r($result); // 输出 [2, 4, 6]
Nach dem Login kopieren

在这个例子中,fn($num) => $num * $multiplier是一个箭头函数,它将每个数字乘以倍数$multiplier并返回一个新的数组。

  1. 可变参数列表

在PHP8.0中,匿名函数可以使用可变参数列表。这意味着,可以传递任意数量的参数给函数,并将它们存储在一个数组中。以下是一个例子:

$sum = function(...$numbers) {
   $result = 0;
   foreach ($numbers as $num) {
      $result += $num;
   }
   return $result;
};

echo $sum(1, 2, 3, 4); // 输出 10
Nach dem Login kopieren

在这个例子中,...$numbers语法表示可变参数列表,它将所有传递的参数存储在一个数组中,并通过循环计算它们的总和。

  1. 添加闭包对象作用域

在PHP8.0中,可以使用$this关键字来引用闭包对象的作用域。这意味着,可以在匿名函数中访问外部对象的属性和方法,例如:

class Foo {
   private $bar = "Hello";
   public function baz() {
      $callback = function() {
         echo $this->bar; // 访问外部对象的属性
      };
      $callback();
   }
}

$foo = new Foo();
$foo->baz(); // 输出 Hello
Nach dem Login kopieren

在这个例子中,匿名函数使用$this->bar来访问外部对象$foo的私有属性$barrrreee

    Erweiterte Pfeilfunktionssyntax

    🎜Die Pfeilfunktion ist ein neuer Typ anonymer Funktion, der in PHP7.4 eingeführt wurde. Es ermöglicht Das Schreiben funktioniert kompakter und prägnanter. In PHP 8.0 wurde die Syntax von Pfeilfunktionen weiter erweitert. Jetzt können Sie die „use“-Anweisung außerhalb der Klammern der Pfeilfunktion platzieren und einfach den Variablennamen im Hauptteil der Pfeilfunktion verwenden, zum Beispiel: 🎜rrreee🎜 In diesem Beispiel ist fn($num) => * $multiplier ist eine Pfeilfunktion, die jede Zahl mit dem Multiplikator $multiplier multipliziert und ein neues Array zurückgibt. 🎜
      🎜Variable Parameterliste🎜🎜🎜In PHP8.0 können anonyme Funktionen variable Parameterlisten verwenden. Das bedeutet, dass beliebig viele Argumente an die Funktion übergeben und in einem Array gespeichert werden können. Hier ist ein Beispiel: 🎜rrreee🎜 In diesem Beispiel stellt die Syntax ...$numbers eine variable Argumentliste dar, die alle übergebenen Argumente in einem Array speichert und ihre Werte durch eine Schleifensumme berechnet . 🎜
        🎜Abschlussobjektbereich hinzufügen🎜🎜🎜In PHP8.0 können Sie das Schlüsselwort $this verwenden, um auf den Bereich des Abschlussobjekts zu verweisen. Dies bedeutet, dass in der anonymen Funktion auf die Eigenschaften und Methoden des externen Objekts zugegriffen werden kann, zum Beispiel: 🎜rrreee🎜 In diesem Beispiel verwendet die anonyme Funktion $this->bar, um auf das externe Objekt zuzugreifen Objekt Der Wert der privaten Eigenschaft <code>$bar von $foo. 🎜🎜Kurz gesagt, die Syntax und Funktionalität anonymer Funktionen von PHP8.0 wurde weiter verbessert und verbessert. Diese Updates machen anonyme Funktionen flexibler, benutzerfreundlicher und effizienter beim Schreiben von Webanwendungen. Wenn Sie ein PHP-Programmierer sind, empfehlen wir Ihnen, so viel wie möglich über diese neuen Funktionen zu lernen und sie in Ihrem nächsten Projekt zu verwenden. 🎜

Das obige ist der detaillierte Inhalt vonAnonyme Funktionen in PHP8.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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