Heim  >  Artikel  >  Backend-Entwicklung  >  Warum werden $GLOBAL[''] und das Schlüsselwort global von statischen Variablen in PHP beeinflusst?

Warum werden $GLOBAL[''] und das Schlüsselwort global von statischen Variablen in PHP beeinflusst?

WBOY
WBOYOriginal
2016-12-01 00:01:22938Durchsuche

Antwortinhalt:

Ich bin zum ersten Mal auf dieses Problem gestoßen. Ich bin ein wenig neugierig, wie hat der Fragesteller dieses Problem entdeckt?

Lassen Sie mich mein Verständnis erklären.

Zuerst müssen wir den Begriff „Auftrag“ klären.

Wenn $a = 1;, bedeutet dies nicht, dass Daten hinzugefügt werden, deren Name $a ist und deren Wert 1 ist.
Wenn $b = &$a;, bedeutet das nicht, dass $b auf $a zeigt oder umgekehrt.

Der Prozess ist so:
<code class="language-php"><span class="x">$a = 1;</span>
</code>
Lesen Sie das PHP-Handbuch, es gibt viele Beispiele
PHP: Variablenbereich
PHP: Erläuterung der Referenz
PHP: Referenzübergabe
PHP: Was macht eine Referenz?



Variable Scope

Der Gültigkeitsbereich einer Variablen ist der Kontext, in dem sie definiert ist (d. h. ihr effektiver Gültigkeitsbereich). die meisten PHP-Variablen haben nur einen einzigen Gültigkeitsbereich. Diese einzelne Bereichsspanne enthält auch Durch include und require eingeführte Dateien. Zum Beispiel:


<code class="language-php"><span class="cp"><?php</span>
<span class="nv">$a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">include</span> <span class="s1">'b.inc'</span><span class="p">;</span><span class="cp">?></span><span class="x"></span>
</code>
<code class="language-text">global $a;
时会 新建 一个指向与外部$a同地址的指针

$GLOBALS['a'] = &$static_a;
时会 把外部$a 指针 指向 $static_a的内容,抛弃原先的指向
</code>
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