<span><span><?php<br>$a </span><span>= </span><span>1</span><span>; </span><span>/* <span>global</span> scope */<br></span><span>function </span><span>Test</span><span>()<br>{<br> echo </span><span>$a</span><span>; </span><span>/* reference to local scope variable */<br></span><span>}<br></span><span>Test</span><span>();<br></span><span>?></span></span>
Dieses Skript erzeugt keine Ausgabe, da sich die Echo-Anweisung auf eine lokale Version der Variablen $a bezieht , und innerhalb dieses Bereichs wird ihm kein Wert zugewiesen. Möglicherweise stellen Sie fest, dass sich die globalen Variablen von PHP ein wenig von denen in C unterscheiden. In C werden globale Variablen automatisch in Funktionen wirksam, sofern sie nicht durch lokale Variablen überschrieben werden. Dies kann zu Problemen führen, da jemand versehentlich eine globale Variable ändern könnte. Globale Variablen in PHP müssen als deklariert werden global.
global Schlüsselwörter
Zuerst ein Beispiel für die Verwendung von global:
Beispiel Nr. 1 mit global
<code><span><span><?php<br>$a </span><span>= </span><span>1</span><span>;<br></span><span>$b </span><span>= </span><span>2</span><span>;<br>function </span><span>Sum</span><span>()<br>{<br> <span>global</span> </span><span>$a</span><span>, </span><span>$b</span><span>;<br> </span><span>$b </span><span>= </span><span>$a </span><span>+ </span><span>$b</span><span>;<br>}<br></span><span>Sum</span><span>();<br>echo </span><span>$b</span><span>;<br></span><span>?></span></span>
1;
$b =
;
Funktion Sum
global
$a, $b
;
<span><span><?php<br>$a </span><span>= </span><span>1</span><span>;<br></span><span>$b </span><span>= </span><span>2</span><span>;<br>function </span><span>Sum</span><span>()<br>{<br> </span><span>$GLOBALS</span><span>[</span><span>'b'</span><span>] = </span><span>$GLOBALS</span><span>[</span><span>'a'</span><span>] + </span><span>$GLOBALS</span><span>[</span><span>'b'</span><span>];<br>}<br></span><span>Sum</span><span>();<br>echo </span><span>$b</span><span>;<br></span><span>?>$b = <p>$a <var><var>+ </var></var>$b<var><var>;<br>}<br></var></var>Summe</p>
<p>();<br>echo </p>
<p></p>$b<p></p>
<p>;<br><code><span><span><?php<br></span><span>function </span><span>test_<span>global</span></span><span>()<br>{<br> </span><span>// 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。<br> </span><span><span>global</span> </span><span>$HTTP_POST_VARS</span><span>;<br> echo </span><span>$HTTP_POST_VARS</span><span>[</span><span>'name'</span><span>];<br> </span><span>// Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。<br> </span><span>echo </span><span>$_POST</span><span>[</span><span>'name'</span><span>];<br>}<br></span><span>?></span></span>
Die Ausgabe des obigen Skripts ist „3“. Nachdem die globalen Variablen
$a und $b in einer Funktion deklariert wurden, verweisen alle Verweise auf eine der Variablen auf ihre globale Version. PHP hat keine Begrenzung hinsichtlich der maximalen Anzahl globaler Variablen, die eine Funktion deklarieren kann. Die zweite Möglichkeit, auf Variablen im globalen Bereich zuzugreifen, ist die Verwendung einer speziellen PHP-Anpassung $GLOBALS Array. Das vorherige Beispiel könnte wie folgt geschrieben werden: Beispiel Nr. 2 mit $GLOBALS ersetztglobal<?php<br>$a <🎜><🎜>= <🎜 ><🎜>1<🎜><🎜>;<br><🎜><🎜>$b <🎜><🎜>= <🎜><🎜>2<🎜><🎜>;<br>Funktion <🎜 ><🎜>Summe<🎜><🎜>()<br>{<br> <🎜><🎜>$GLOBALS<🎜><🎜>[<🎜><🎜>'b'<🎜><🎜> ] = <🎜><🎜>$GLOBALS<🎜><🎜>[<🎜><🎜>'a'<🎜><🎜>] + <🎜><🎜>$GLOBALS<🎜><🎜>[< 🎜><🎜>'b'<🎜><🎜>];<br>}<br><🎜><🎜>Summe<🎜><🎜>();<br>echo <🎜><🎜>$ b<🎜><🎜>;<br><🎜><🎜>?>
$GLOBALS
ist ein assoziatives Array, jede Variable ist ein Element, der Schlüsselname entspricht dem Variablennamen und der Wert entspricht dem Inhalt der Variablen. $GLOBALS
existiert im globalen Bereich, da $GLOBALS eine superglobale Variable ist. Das folgende Beispiel zeigt die Verwendung superglobaler Variablen:
Beispiel #3 Beispiel zur Demonstration superglobaler Variablen und des Gültigkeitsbereichs<?php<br><🎜>< 🎜>Funktion <🎜><🎜>test_<🎜>global<🎜><🎜><🎜>()<br>{<br> <🎜><🎜>// Die meisten vordefinierten Variablen sind nicht „super“, sie erfordern das „ Schlüsselwort „global“, um sie im lokalen Bereich der Funktion verfügbar zu machen. [ <🎜><🎜>'name'<🎜><🎜>];<br> <🎜><🎜>// Superglobals sind in jedem Bereich gültig, sie erfordern keine „globale“ Deklaration. Superglobals wurden in PHP 4.1.0 eingeführt. <br> <🎜><🎜>echo <🎜><🎜>$_POST<🎜><🎜>[<🎜><🎜>'name'<🎜><🎜>];<br>}<br>< 🎜><🎜>?>
Das Obige stellt die Verwendung des globalen Schlüsselworts und von $GLOBALS in PHP vor, einschließlich relevanter Inhalte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.