Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich eine globale Variable innerhalb einer anonymen Funktion in PHP ändern?

Wie kann ich eine globale Variable innerhalb einer anonymen Funktion in PHP ändern?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 00:44:02936Durchsuche

How Can I Modify a Global Variable from Within an Anonymous Function in PHP?

Zugriff auf global gültige Variablen innerhalb anonymer Funktionen

In PHP erben anonyme Funktionen normalerweise den lokalen Gültigkeitsbereich der umschließenden Funktion oder den globalen Gültigkeitsbereich, wenn außerhalb einer Funktion definiert. Wenn Sie jedoch versuchen, eine Variable mit globalem Gültigkeitsbereich innerhalb einer anonymen Funktion zu ändern, können Probleme auftreten.

Ändern von Variablen mit globalem Gültigkeitsbereich

Betrachten Sie das folgende Beispiel:

$variable = "nothing";

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

echo $variable;  // Output: "nothing"

Trotz des Versuchs, $variable innerhalb der anonymen Funktion zu ändern, bleibt die Ausgabe „nichts“. Dies liegt daran, dass anonyme Funktionen ihren eigenen Bereich erstellen und den globalen Bereich nicht direkt erben.

Lösung: Abschlüsse

Um diese Einschränkung zu beheben, können Sie Abschlüsse verwenden. Mit Abschlüssen können Sie Variablen aus dem umschließenden Bereich in einen neuen Bereich erfassen. Um eine global gültige Variable innerhalb einer anonymen Funktion zu ändern, verwenden Sie die folgende Syntax:

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

Indem Sie use vor dem Variablennamen voranstellen und mit & darauf verweisen, erstellen Sie einen Abschluss, der die Variable als Referenz erfasst. Dies ermöglicht Änderungen innerhalb der anonymen Funktion.

Fazit

Durch die Verwendung von Abschlüssen können Sie innerhalb anonymer Funktionen auf global gültige Variablen zugreifen und diese ändern, wodurch die Einschränkung beim Erstellen neuer Variablen überwunden wird Gültigkeitsbereich innerhalb einer anonymen Funktion. Indem Sie die Variable per Referenz erfassen, können Sie Änderungen vornehmen, die außerhalb des Gültigkeitsbereichs der anonymen Funktion bestehen bleiben.

Das obige ist der detaillierte Inhalt vonWie kann ich eine globale Variable innerhalb einer anonymen Funktion in PHP ä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