Heim  >  Artikel  >  Backend-Entwicklung  >  Statische PHP-Variablen

Statische PHP-Variablen

巴扎黑
巴扎黑Original
2016-11-09 14:18:261260Durchsuche

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 . &#39;<br />&#39;;    
            }    
        }    
   
        $nmInstance1 = new nowamagic();    
        $nmInstance1 -> nmMethod();    
    
        $nmInstance2 = new nowamagic();    
        $nmInstance2 -> nmMethod();    
    ?>

Programmlaufergebnis:

3

5


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