Anonyme Funktionen (Anonyme Funktionen), auch Abschlüsse genannt, ermöglichen das vorübergehende Erstellen einer Funktion ohne angegebenen Namen. Am häufigsten als Wert des (Callback)-Parameters der Callback-Funktion verwendet. Natürlich gibt es auch andere Anwendungen.
Anonyme Funktionen werden derzeit über die Closure-Klasse implementiert.
Abschlussfunktionen können auch als Wert von Variablen verwendet werden. PHP konvertiert diesen Ausdruck automatisch in eine Objekt-Instanz der integrierten Klasse Closure. Die Methode zum Zuweisen eines Abschlussobjekts zu einer Variablen ist dieselbe wie die Syntax der gewöhnlichen Variablenzuweisung, und am Ende wird außerdem ein Semikolon hinzugefügt:
Ein Abschluss kann sein vom übergeordneten Bereich abgerufen erbt -Variablen. Solche Variablen sollten mithilfe des Sprachkonstrukts use übergeben werden. Ab PHP 7.1 können solche Variablen nicht übergeben werden in: superglobals, $this oder haben denselben Namen wie Parameter.
Die spezifische Form ist wie folgt:
$a = function($arg1, $arg2) use ($variable) { // 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量 }
Die spezifischen Anwendungsbeispiele sind wie folgt:
<?php $result = 0; $one = function() { var_dump($result); }; $two = function() use ($result) { var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值 $three = function() use (&$result) { var_dump($result); }; $result++; $one(); // outputs NULL: $result is not in scope $two(); // outputs int(0): $result was copied $three(); // outputs int(1) ?>
Das obige ist der detaillierte Inhalt vonAnalyse der PHP-Schließungsinstanz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!