ホームページ  >  記事  >  バックエンド開発  >  PHP の静的静的変数

PHP の静的静的変数

巴扎黑
巴扎黑オリジナル
2016-11-09 14:18:261255ブラウズ

静的変数は関数スコープ内にのみ存在します。つまり、静的変数はスタック上にのみ存在します。一般に、関数内の変数 (ローカル変数など) は関数の終了後に解放されますが、静的変数は解放されません。つまり、変数の値は次回この関数が呼び出されたときに保持されます。

変数の前にキーワード 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

関数test()の実行後、変数$nmの値が保存されます。

静的プロパティは、静的メンバーや静的メソッドなどのクラスでよく使用されます。

プログラム リスト: クラスの静的メンバー

静的変数 $nm は、クラスのインスタンスではなく、クラス nowamagic に属します。この変数はすべてのインスタンスに対して有効です。

:: はスコープ制限演算子です。$this スコープの代わりに self スコープが使用されます。$this スコープはクラスの現在のインスタンスのみを表し、self:: はクラス自体を表します。

ソースを見る

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。