Wie können anonyme Funktionen globale Variablen in PHP ändern?

Barbara Streisand
Freigeben: 2024-11-13 15:01:02
Original
208 Leute haben es durchsucht

How Can Anonymous Functions Modify Global Variables in PHP?

Zugriff auf globale Variablen innerhalb anonymer Funktionen

In PHP arbeiten anonyme Funktionen normalerweise in ihrem eigenen isolierten Bereich, was ihre Fähigkeit, auf definierte Variablen zuzugreifen, einschränkt anderswo. Dies kann bei der Arbeit mit globalen Variablen ein Hindernis sein.

Herausforderung:

Betrachten Sie das bereitgestellte Beispiel:

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  //output: "nothing"
Nach dem Login kopieren

In diesem Szenario ist die Die anonyme Funktion kann den Wert der $-Variable außerhalb ihres Gültigkeitsbereichs nicht ändern, was dazu führt, dass die Ausgabe erhalten bleibt „nichts.“

Lösung: Schließungen

Um diese Herausforderung zu meistern, können Schließungen eingesetzt werden. Ein Abschluss ist eine Funktion, die den Zugriff auf die Variablen ihres umschließenden Bereichs auch dann behält, wenn der Bereich verlassen wird.

Um eine global gültige Variable innerhalb einer anonymen Funktion zu ändern, verwenden Sie die folgende Syntax:

functionName($someArgument, function() use(&$variable) {
  $variable = "something";
});
Nach dem Login kopieren

Durch die Verwendung von „use(&$variable)“ innerhalb der anonymen Funktion wird der Verweis auf die globale $variable an die Funktion übergeben. Das „&“ zeigt an, dass wir einen Verweis auf die Variable übergeben, sodass wir ihren Wert innerhalb der Funktion ändern können.

Wenn die anonyme Funktion nun ausgeführt wird, kann sie den Wert von $variable und erfolgreich ändern Der geänderte Wert bleibt außerhalb des Funktionsbereichs bestehen.

Das obige ist der detaillierte Inhalt vonWie können anonyme Funktionen globale Variablen in PHP ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage