Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich in PHP auf externe Variablen innerhalb anonymer Funktionsparameter zu?

Wie greife ich in PHP auf externe Variablen innerhalb anonymer Funktionsparameter zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-14 21:32:021036Durchsuche

How to Access External Variables Within Anonymous Function Parameters in PHP?

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!

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