首頁  >  文章  >  後端開發  >  PHP的static靜態變數

PHP的static靜態變數

巴扎黑
巴扎黑原創
2016-11-09 14:18:261273瀏覽

靜態變數只存在於函數作用域內,也就是說,靜態變數只存活在堆疊中。一般的函數內變數在函數結束後會釋放,例如局部變量,但是靜態變數卻不會。是說,下次再呼叫這個函數的時候,該變數的值會保留下來。

只要在變數前面加上關鍵字static,該變數就成為靜態變數了。

    <?php    
        function test()    
       {    
            static $nm = 1;    
            $nm = $nm * 2;    
            print $nm."<br />";    
        }    
    
        // 第一次执行,$nm = 2    
        test();    
        // 第一次执行,$nm = 4    
        test();    
        // 第一次执行,$nm = 8    
        test();    
    ?>

程式運作結果:

    2    

    4    

    8   4    

    8    

test值的執行變數,了執行變數。

在class中常使用到靜態屬性,例如靜態成員、靜態方法。

Program List:類別的靜態成員

靜態變數$nm屬於類別nowamagic,而不屬於類別的某個實例。這個變數對所有實例都有效。

::是作用域限定運算符,這裡用的是self作用域,而不是$this作用域,$this作用域只表示類別的目前實例,self::表示的是類別本身。

view source 

 

print?

 <?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();    
    ?>

程式運作結果:

  3    

  5 5 5  

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn