Heim > Artikel > Backend-Entwicklung > Wie kann ich auf externe Variablen innerhalb einer anonymen Funktion in PHP zugreifen und diese ändern?
Anonyme Funktionen als Parameter für den Zugriff auf externe Variablen verwenden
Das Szenario beinhaltet eine praktische Funktion, die Datenbankzeilen bequem verarbeitet. Es besteht jedoch eine besondere Anforderung, bei der Sie alle Titel aus der Ergebnismenge in einer einzigen Variablen verketten müssen. Dies wirft die Frage auf, wie dies erreicht werden kann, ohne auf den weniger eleganten Ansatz der Verwendung des globalen Schlüsselworts angewiesen zu sein.
Eine Lösung liegt in der Verwendung von Abschlussvariablen. Insbesondere ermöglicht das Schlüsselwort use, dass Abschlüsse Variablen vom übergeordneten Bereich erben. Dies unterscheidet sich von globalen Variablen, die über alle Funktionen hinweg bestehen bleiben.
Um diese Lösung zu implementieren, kann der Code wie folgt geändert werden:
$result = ''; fetch("SELECT title FROM tbl", function($r) use (&$result) { $result .= $r['title']; });
Durch Hinzufügen von use (&$result) zu Mit der anonymen Funktion können wir die Ergebnisvariable innerhalb der Funktion referenzieren und ändern. Das Schlüsselwort „use“ übergibt effektiv einen Verweis auf die Ergebnisvariable an den Abschluss.
Es ist wichtig zu beachten, dass dieser Ansatz eine frühe Bindung beinhaltet, was bedeutet, dass der Abschluss den Wert der Variablen zum Zeitpunkt der Funktionsdeklaration verwendet. nicht zum Zeitpunkt des Funktionsaufrufs (späte Bindung). Dies ist zu beachten, wenn Sie Verschlüsse für diesen Zweck verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich auf externe Variablen innerhalb einer anonymen Funktion in PHP zugreifen und diese ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!