Zugriff auf globale Variablen innerhalb anonymer Funktionen
In PHP haben anonyme Funktionen von Natur aus keinen Zugriff auf globale Variablen. Dies kann zu Herausforderungen führen, wenn Sie versuchen, externe Variablen innerhalb dieser anonymen Funktionen zu manipulieren.
Beispiel:
Bedenken Sie den folgenden Code:
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; });
Beim Ausführen dieses Codes bleibt die $-Variable „nichts“, da die anonyme Funktion nicht auf den globalen Bereich zugreifen kann.
Lösung: Schließungen
Um dieses Problem zu beheben, führt PHP Folgendes ein: das Konzept der Schließungen. Abschlüsse ermöglichen die Manipulation von Variablen aus einem umschließenden Bereich innerhalb einer anonymen Funktion. Um einen Abschluss zu erstellen, fügen Sie das Schlüsselwort „use“ zur Deklaration der anonymen Funktion hinzu:
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
In diesem Fall wird das Schlüsselwort „use“ von einem kaufmännischen Und (&) begleitet, das angibt, dass die Variable „$variable“ übergeben wird Referenz. Dadurch kann die anonyme Funktion die globale $-Variable ändern.
Hinweis: Es ist wichtig, das kaufmännische Und (&) zu verwenden, wenn innerhalb eines Abschlusses auf Variablen verwiesen wird, um sicherzustellen, dass die globale Variable geändert wird , und die Änderungen werden außerhalb der anonymen Funktion widergespiegelt.
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!