Heim >Backend-Entwicklung >PHP-Tutorial >Die Verwendung und der Unterschied zwischen global und $GLOBALS[] in PHP

Die Verwendung und der Unterschied zwischen global und $GLOBALS[] in PHP

巴扎黑
巴扎黑Original
2016-11-11 15:00:421253Durchsuche

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 &#39;b.inc&#39;;  
?>

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[&#39;b&#39;] = $GLOBALS[&#39;a&#39;] + $GLOBALS[&#39;b&#39;];  
}  
  
Sum();  
echo $b;//3  
?>

$ 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",它们需要用 &#39;global&#39; 关键字来使它们在函数的本地区域中有效。  
    global $HTTP_POST_VARS;  
  
    echo $HTTP_POST_VARS[&#39;name&#39;];  
  
    // Superglobals 在任何范围内都有效,它们并不需要 &#39;global&#39; 声明。Superglobals 是在 PHP 4.1.0 引入的。  
    echo $_POST[&#39;name&#39;];  
}  
?>

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[&#39;var1&#39;]);   
}   
test();   
echo $var1;   
?>
Ergebnis: Hinweis: Undefinierte Variable: var1. Weil die Variable var1 durch die unset-Funktion gelöscht wurde.

PHP-Code

 <?php   
$var1 = 1;   
function test(){   
global $var1;   
unset($var1);   
}   
test();   
echo $var1;   
?>
Ergebnis: Drucken 1

Nur ​​die Alias-Referenz wird gelöscht und ihr Wert wird in keiner Weise geändert.

global $var ist eigentlich &$GLOBALS['var'], was nur ein Alias ​​für den Aufruf externer Variablen ist.

$var1 und $GLOBALS['var1'] im obigen Code beziehen sich auf dieselbe Variable selbst.

Die Funktion der globalen Variablen von PHP besteht darin, globale Variablen zu definieren. Diese globale Variable gilt jedoch nicht für die gesamte Website, sondern für die aktuelle Seite, einschließlich aller Dateien in include oder require.

Fazit:

1.$GLOBALS['var'] ist die externe globale Variable selbst

2.global $var ist die gleichnamige Referenz oder Zeiger von externe $var.


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