Der Unterschied zwischen statischen statischen Variablen und gewöhnlichen Variablen in PHP
Fügen Sie statische Werte vor einer Variablen hinzu, um eine statische Variable zu bilden.
Der Unterschied zwischen statischen Variablen und gewöhnlichen Variablen besteht darin, dass der Geltungsbereich nicht statischer globaler Variablen das gesamte Quellprogramm umfasst. Wenn ein Quellprogramm aus mehreren Quelldateien besteht, sind nicht statische globale Variablen in jeder Quelldatei gültig. Statische globale Variablen beschränken ihren Gültigkeitsbereich, d. h. sie sind nur innerhalb der Quelldatei gültig, in der die Variable definiert ist, und können nicht in anderen Quelldateien desselben Quellprogramms verwendet werden. Da der Umfang statischer globaler Variablen auf eine Quelldatei beschränkt ist und nur von Funktionen in dieser Quelldatei gemeinsam genutzt werden kann, können Fehler in anderen Quelldateien vermieden werden.
Der Unterschied zwischen statischen Variablen und gewöhnlichen Variablen:
Der Unterschied zwischen statischen globalen Variablen und gewöhnlichen globalen Variablen: Statische globale Variablen werden nur einmal initialisiert, um zu verhindern, dass in anderen Dateieinheiten auf sie verwiesen wird;
Der Unterschied zwischen statischen lokalen Variablen und gewöhnlichen lokalen Variablen: Statische lokale Variablen werden nur einmal initialisiert und basieren beim nächsten Mal auf dem vorherigen Ergebniswert
Der Unterschied zwischen statischen Funktionen und gewöhnlichen Funktionen: Statische Funktionen haben nur eine Kopie im Speicher, während normale Funktionen bei jedem Aufruf eine Kopie behalten.
Fügen Sie das Schlüsselwort static vor der globalen Variablen hinzu, und die globale Variable wird als globale statische Variable definiert.
1) Speicherort: statischer Speicherbereich (statischer Speicherbereich existiert während der gesamten Programmausführung)
2) Initialisierung: Nicht initialisierte globale statische Variablen werden vom Programm automatisch auf 0 initialisiert (der Wert eines automatischen Objekts ist beliebig, sofern er nicht explizit initialisiert wird)
3) Geltungsbereich: Globale statische Variablen sind außerhalb der Datei, in der sie deklariert sind, nicht sichtbar. Genau vom Definitionspunkt bis zum Ende der Datei.
Vorteile statischer Variablen:
Andere Dateien können nicht darauf zugreifen. Sie können Variablen mit demselben Namen in anderen Dateien ohne Konflikte ändern.
Speicherort: statischer Speicherbereich
Initialisierung: Nicht initialisierte globale statische Variablen werden vom Programm automatisch auf 0 initialisiert (der Wert eines automatischen Objekts ist beliebig, sofern er nicht explizit initialisiert wird)
Geltungsbereich: Der Geltungsbereich ist immer noch ein lokaler Geltungsbereich. Wenn die Funktion oder der Anweisungsblock, der ihn definiert, endet, endet der Geltungsbereich.
Hinweis: Wenn statische Variablen zum Ändern lokaler Variablen verwendet werden, ändert sich der Speicherort lokaler Variablen vom ursprünglichen Stapel in den statischen Speicherbereich. Die lokale statische Variable wird jedoch nach Verlassen des Gültigkeitsbereichs nicht zerstört, sondern bleibt bis zum Ende des Programms noch im Speicher, wir können jedoch nicht mehr darauf zugreifen.
Wenn Static zum Ändern einer globalen Variablen verwendet wird, ändert sich der Gültigkeitsbereich der globalen Variablen (sie ist außerhalb der Datei, in der sie deklariert ist, nicht sichtbar), aber ihr Speicherort ändert sich nicht, da er sich immer noch im statischen Speicherbereich befindet.
Gemeinsame Funktionsbeispiele:
<?php function Test() { $w3sky = 0; echo $w3sky; $w3sky++; /*函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。*/ } ?>
Um die Variable $w3sky als statisch zu definieren, lautet der Code wie folgt:
<?php function Test() { static $w3sky = 0; echo $w3sky; $w3sky++; } //本函数每调用Test()都会输出 $w3sky 的值并加一。 ?>
Statische Variablen bieten auch eine Möglichkeit, mit rekursiven Funktionen umzugehen. Eine rekursive Funktion ist eine Methode, die sich selbst aufruft. Seien Sie beim Schreiben rekursiver Funktionen vorsichtig, da diese ohne Exit auf unbestimmte Zeit rekursiv sein können. Stellen Sie sicher, dass Sie eine Möglichkeit haben, die Rekursion abzubrechen. Die folgende einfache Funktion zählt rekursiv bis 10 und verwendet die statische Variable $count, um zu bestimmen, wann gestoppt werden soll. Beispiel für statische Variablen und rekursive Funktionen:
<?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?>
Hinweis: Statische Variablen können nicht in Form von Ausdrücken deklariert werden: static $int = 1+2; Diese Art der Deklaration ist falsch.
Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!