Heim > Backend-Entwicklung > PHP-Tutorial > Der Unterschied zwischen statischen statischen Variablen und gewöhnlichen Variablen im Beispiel von php_php

Der Unterschied zwischen statischen statischen Variablen und gewöhnlichen Variablen im Beispiel von php_php

WBOY
Freigeben: 2023-03-03 06:54:02
Original
1091 Leute haben es durchsucht

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:

<&#63;php
function Test() {
  $w3sky = 0;
  echo $w3sky;
  $w3sky++;
  /*函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。*/
}
&#63;>        
          
Nach dem Login kopieren

Um die Variable $w3sky als statisch zu definieren, lautet der Code wie folgt:

<&#63;php
function Test() {
  static $w3sky = 0;
  echo $w3sky;
  $w3sky++;
} //本函数每调用Test()都会输出 $w3sky 的值并加一。

&#63;>    

Nach dem Login kopieren

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:

<&#63;php
function Test() {
  static $count = 0;
  $count++;
  echo $count;
  if ($count < 10) {
    Test();
  }
  $count--;
}
&#63;>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage