Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich globale Variablen innerhalb anonymer Funktionen in PHP ändern?

Wie kann ich globale Variablen innerhalb anonymer Funktionen in PHP ändern?

Susan Sarandon
Susan SarandonOriginal
2024-11-12 18:37:02945Durchsuche

How Can I Modify Global Variables Within Anonymous Functions in PHP?

Erweitern des Variablenbereichs in anonymen Funktionen mit Abschlüssen

In PHP arbeiten anonyme Funktionen normalerweise innerhalb ihres eigenen Bereichs und können nicht direkt auf außerhalb deklarierte Variablen zugreifen von ihnen. Dies kann beim Versuch, globale Variablen zu ändern, zu Herausforderungen führen.

Betrachten wir ein Beispiel:

$variable = "nothing";

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

echo $variable;  //output: "nothing"

In diesem Skript kann die anonyme Funktion die $-Variable nicht ändern, da sie sich in einer anderen befindet Umfang. Um diese Einschränkung zu überwinden, können Sie Abschlüsse verwenden.

Abschlüsse zum Referenzieren globaler Variablen verwenden

Abschlüsse, gekennzeichnet durch use(), ermöglichen anonymen Funktionen den Zugriff auf Variablen aus dem umschließenden Umfang. Um eine globale Variable innerhalb einer anonymen Funktion zu ändern, fügen Sie einfach den &-Operator in den Abschluss ein:

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

In diesem modifizierten Beispiel verwendet die anonyme Funktion den &-Operator, um auf die Variable $variable im globalen Bereich zu verweisen . Dadurch kann die Funktion den Wert von $variable ändern, der dann außerhalb seines Gültigkeitsbereichs abgerufen und gedruckt werden kann.

Durch die Verwendung von Abschlüssen können Sie den Gültigkeitsbereich von Variablen innerhalb anonymer Funktionen effektiv erweitern und so eine größere Flexibilität bieten Arbeiten mit globalen Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich globale Variablen innerhalb anonymer Funktionen 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