Der Gültigkeitsbereich einer Variablen ist der Kontext, in dem sie definiert ist (d. h. ihr effektiver Gültigkeitsbereich). In JavaScript gibt es kein Konzept für den Variablenbereich. Ein ähnliches Konzept könnte der Bereich sein. Da JavaScript jedoch einen lexikalischen Bereich verwendet, der sich auf die Position bezieht, wenn die Variable deklariert wird, und PHP keine Variablendeklaration hat, entspricht die Variable der Deklaration der Variablen, wenn ihr zum ersten Mal ein Wert zugewiesen wird. Daher sind die beiden nicht dasselbe. In diesem Artikel wird der Variablenbereich in PHP ausführlich vorgestellt.
1. Lokale Variablen
Lokale Variablen sind Variablen, die innerhalb einer Funktion deklariert sind und deren Gültigkeitsbereich auf das Innere der Funktion beschränkt ist. Die Parameter einer Funktion sind ebenfalls lokale Variablen. Der Unterschied besteht darin, dass der Funktionsparameterwert aus dem beim Aufruf übergebenen Wert stammt. Nach der Ausführung werden alle dynamischen Variablen innerhalb der Funktion freigegeben.
<?php function a($b){ $c = 1; echo "$b+$c = " . ($b+$c) . '<br />'; } a(2);//输出3 echo $b+$c;//函数外部的非法访问,报notice错误,并输出0 ?>
2. Globale Variablen
Variablen, die außerhalb der Funktion definiert werden, werden globale Variablen genannt und ihr Gültigkeitsbereich reicht vom Anfang der definierten Variablen bis zum Ende der Programmdatei.
Außerdem können globale Variablen nicht direkt in einer Funktion aufgerufen werden. Sie müssen das Schlüsselwort global verwenden. Anstelle von global können Sie auch $GLOBALS verwenden. $GLOBALS ist eine superglobale Variable.
<?php //示例1 $a = 1; $b = 2; function Sum(){ global $a, $b; $b = $a + $b; } Sum(); echo $b;//输出的结果是3 //示例2 $c = 1; $d = 2; function Sum() { $GLOBALS['d'] = $GLOBALS['c'] + $GLOBALS['d']; } Sum(); echo $d;//输出3 ?>
3. Statische Variablen
Statische Variablen existieren nur im lokalen Funktionsbereich, aber wenn die Programmausführung diesen Bereich verlässt, geht ihr Wert nicht verloren. Statische Variablen werden mit statischen Variablen deklariert, und diejenigen, die nicht statisch deklariert sind, sind standardmäßig dynamische Variablen. Nachdem die Funktion ausgeführt wurde, sind die internen statischen Variablen bereits im Speicher gespeichert. Sie wird nur beim ersten Aufruf der Funktion während der Skriptausführung initialisiert.
<?php function test() { static $a = 0; echo $a; $a++; } test();//输出0 test();//输出1 ?>
Statische Variablen bieten auch eine Möglichkeit, mit rekursiven Funktionen umzugehen. Eine rekursive Funktion ist eine Funktion, die sich selbst aufruft. Seien Sie beim Schreiben rekursiver Funktionen vorsichtig, da diese möglicherweise auf unbestimmte Zeit rekursiv sind. Sie müssen sicherstellen, dass es geeignete Möglichkeiten gibt, die Rekursion zu beenden. Die folgende einfache Funktion zählt rekursiv bis 10 und verwendet die statische Variable $count, um zu bestimmen, wann gestoppt werden soll
<?php function test() { static $count = 0; $count++; echo $count; if ($count < 10) { test(); } $count--; } ?>
Verwandte Empfehlungen:
PHP-Variablenbereich, globale PHP-Variablen und statische Variablen
Einführung in den PHP-Variablenbereich_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des PHP-Variablenbereichs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!