Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich auf externe Variablen innerhalb einer anonymen Funktion in PHP zugreifen und diese ändern?

Wie kann ich auf externe Variablen innerhalb einer anonymen Funktion in PHP zugreifen und diese ändern?

DDD
DDDOriginal
2024-11-14 17:56:02782Durchsuche

How can I access and modify external variables within an anonymous function in PHP?

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!

Stellungnahme:
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