Heim  >  Artikel  >  Backend-Entwicklung  >  Sprechen Sie über globale Variablen in PHP

Sprechen Sie über globale Variablen in PHP

little bottle
little bottlenach vorne
2019-04-22 17:38:332973Durchsuche

Wie wir alle wissen, besteht die Möglichkeit, in PHP-Funktionen globale Variablen zu verwenden, darin, die superglobale Variable$GLOBALS zu verwenden, und die andere in der Verwendung der Schlüsselwortdeklaration global die Funktion, mit der wir heute über die Verwendung der globalen Methode zum Deklarieren von Variablen sprechen.

Sehen wir uns das folgende Beispiel an:

$a = 1;
$b = 2;
function test() {
    global $a, $b;
}
test();

Wenn wir die Funktion test() ausführen, welchen Status haben die Variablen im Speicher? Wie in der Abbildung unten gezeigt

deklarieren wir die Testfunktion. Wenn die test()-Funktion aufgerufen wird, deklariert global zwei lokale Variablen $a, $b in der Funktion , und Zeigen Sie auf die globalen Variablen $a und $b. Zu diesem Zeitpunkt entsprechen die temporären Variablen $a und $b den Verweisen auf die globalen Variablen $a und $b. Wenn wir also die Werte der lokalen Variablen $a und $b in der Funktion ändern, entspricht dies der Änderung des Werts der globalen Variablen.

$a = 1;
$b = 2;
function test() {
    global $a, $b;
    $a = 11;
    $b = 12;
    unset($a);
    unset($b);
}
test();
echo $a;
echo &#39;<br>&#39;;
echo $b;

Ausgabe im Browser drucken:

11
22

Der obige Code verwendet auch unset() und die Werte der globalen Variablen $a, $b können über die Echoausgabe ausgegeben werden , was auch zeigt, dass test Die über das globale Schlüsselwort in der ()-Funktion deklarierten $a und $b nur lokale Variablen sind und unset() nur die Referenzen zwischen lokalen Variablen und globalen Variablen trennt.

Sehen wir uns eine andere Situation an: Was passiert, wenn die Variablen, die wir in der Testfunktion deklarieren, nicht in den globalen Variablen enthalten sind?

Lassen Sie uns zunächst über die Schlussfolgerung sprechen: Wenn eine Variable, die mit dem Schlüsselwort global in einer Funktion deklariert wurde, keine Variable mit demselben Namen im globalen Gültigkeitsbereich hat, dann wird dies eine globale Variable mit demselben Namen sein Zuerst wird eine lokale Variable erstellt, und dann wird in der Funktion auf die lokale Variable verwiesen.

function test() {
    global $a, $b;
    $a = 11;
    $b = 22;
    unset($a);
    unset($b);
}
echo $a;
echo &#39;<br>&#39;;
echo $b;

Ausgabe über den Browser:

11
22

Im obigen Code verwenden wir global, um die Variablen $a, $b in der Testfunktion zu deklarieren, der globale Gültigkeitsbereich jedoch nicht deklarieren Sie $ a und $ b, aber global erstellt weiterhin zuerst die globalen Variablen $ a und $ b, erstellt dann $ a und $ b in der Testfunktion und verweist dann auf die Referenz der globalen Variablen auf die lokale Variable der Testfunktion . Selbst wenn wir also $a und $b in der Funktion deaktivieren, können wir $a und $b immer noch ausdrucken, nachdem die Funktion ausgeführt wurde, da die globale Variable bereits zwei Variablen enthält.

Damit können wir endlich die folgende Schlussfolgerung ziehen:

Wenn Sie global verwenden, um eine Variable in einer Funktion zu deklarieren, wird zunächst geprüft, ob es eine Variable mit demselben Namen in der Funktion gibt globaler Gültigkeitsbereich, und wenn ja, wird die Referenz dieser globalen Variablen auf eine lokale Variable mit demselben Namen verweisen, die mit global deklariert wird. Wenn im globalen Bereich keine Variable mit demselben Namen vorhanden ist, erstellen Sie zuerst eine globale Variable mit demselben Namen, dann eine lokale Variable und verweisen Sie dann auf die Referenz der globalen Variablen auf die lokale Variable.

Verwandte Tutorials: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSprechen Sie über globale Variablen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen