Einbindung externer Variablen in anonyme Funktionsparameter
Bei der Programmierung ist es oft notwendig, auf Variablen zuzugreifen, die außerhalb des Geltungsbereichs einer Funktion definiert sind. Bei der Verwendung anonymer Funktionen als Parameter kann diese Aufgabe eine Herausforderung sein.
Betrachten wir das folgende Szenario: Eine Funktion, fetch(), wird verwendet, um Datenbankzeilen zu verarbeiten und sie als Parameter an eine anonyme Funktion zu übergeben. Auf jede Zeile kann mit $r['title'] zugegriffen werden, es besteht jedoch die Anforderung, diese Titel in einer Variablen zu verketten.
Der globale Modifikator kann zwar verwendet werden, ist jedoch keine elegante Lösung. Ein geeigneterer Ansatz ist die Verwendung des Schlüsselworts „use“, wie im folgenden Code gezeigt:
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; });
Das Schlüsselwort „use“ erfasst das Ergebnis der externen Variablen als Referenz (&$result) und stellt es innerhalb der anonymen Funktion zur Verfügung .
Beachten Sie jedoch, dass use()-Parameter eine frühe Bindung aufweisen. Dies bedeutet, dass sie den Wert der Variablen zum Zeitpunkt der Deklaration der Lambda-Funktion verwenden, nicht zum Zeitpunkt des Aufrufs (späte Bindung).
Das obige ist der detaillierte Inhalt vonWie greife ich in PHP auf externe Variablen innerhalb anonymer Funktionsparameter zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!