Statische Variablen existieren nur innerhalb des Funktionsumfangs, d. h. statische Variablen leben nur auf dem Stapel. Im Allgemeinen werden Variablen innerhalb von Funktionen nach Funktionsende freigegeben, z. B. lokale Variablen, statische Variablen jedoch nicht. Das heißt, der Wert der Variablen bleibt beim nächsten Aufruf dieser Funktion erhalten.
Solange Sie das Schlüsselwort static vor einer Variablen hinzufügen, wird die Variable zu einer statischen Variablen.
<?php function test() { static $nm = 1; $nm = $nm * 2; print $nm."<br />"; } // 第一次执行,$nm = 2 test(); // 第一次执行,$nm = 4 test(); // 第一次执行,$nm = 8 test(); ?>
Ergebnis der Programmausführung:
2
4
8
Nachdem die Funktion test() ausgeführt wurde, wird die Variable $nm Die Werte werden gespeichert.
Statische Attribute werden häufig in Klassen verwendet, z. B. statische Mitglieder und statische Methoden.
Programmliste: Statische Mitglieder der Klasse
Die statische Variable $nm gehört zur Klasse nowamagic, nicht zu einer Instanz der Klasse. Diese Variable ist für alle Instanzen gültig.
:: ist der Bereichsbeschränkungsoperator. Der Bereich self wird hier anstelle des Bereichs $this verwendet. Der Bereich $this repräsentiert nur die aktuelle Instanz der Klasse und self:: repräsentiert die Klasse selbst.
Quelle anzeigen
drucken?
<?php class nowamagic { public static $nm = 1; function nmMethod() { self::$nm += 2; echo self::$nm . '<br />'; } } $nmInstance1 = new nowamagic(); $nmInstance1 -> nmMethod(); $nmInstance2 = new nowamagic(); $nmInstance2 -> nmMethod(); ?>
Programmlaufergebnis:
3
5