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. Dieser einzelne Bereich umfasst auch Dateien, die durch include und require eingeführt wurden. Zum Beispiel:
PHP-Code
<?php $a = 1; include 'b.inc'; ?>
Hier wird die Variable $a in der eingebundenen Datei b.inc wirksam. In benutzerdefinierten Funktionen wird jedoch ein lokaler Funktionsumfang eingeführt. Alle innerhalb einer Funktion verwendeten Variablen sind standardmäßig auf den lokalen Funktionsbereich beschränkt. Zum Beispiel:
PHP-Code
<?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?>
Dieses Skript hat keine Ausgabe, da die Echo-Anweisung auf eine lokale Version der Variablen $a verweist und innerhalb dieses Bereichs Es wurde kein Wert zugewiesen. Möglicherweise stellen Sie fest, dass sich die globalen Variablen von PHP ein wenig von der C-Sprache unterscheiden. In der C-Sprache 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 global deklariert werden, wenn sie in Funktionen verwendet werden.
globales Schlüsselwort
Erstens ein Beispiel für die Verwendung von global:
Beispiel #1 Verwendung von global
PHP-Code
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?>
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 eines speziellen PHP-benutzerdefinierten $GLOBALS-Arrays. Das vorherige Beispiel kann wie folgt geschrieben werden:
Beispiel #2 Verwenden Sie $GLOBALS, um den globalen
PHP-Code
<?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b;//3 ?>
< zu ersetzen 🎜>$ 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 von Super-Global-Variablen: Beispiel #3 Beispiel zur Demonstration von Super-Global-Variablen und -Bereich PHP-Code
<?php function test_global() { // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。 global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; // Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 echo $_POST['name']; } ?>
Der Unterschied zwischen global und $GLOBALS[]
$GLOBALS['var'] ist die externe globale Variable selbst, global $var ist die gleichnamige Referenz oder Zeiger der externen $var PHP-Code<?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?>
<?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?>