PHPのstatic(静的)変数について

1170 ワード

まずstaticの文法上の定義を明確にします.
PHPのクラスでは,静的変数の前にstaticキーワード修飾を加え,インスタンス変数の前にはつけない.
静的変数:
静的変数は直接クラス名で追加できます::クラスをインスタンス化する必要はなく呼び出されます.静的変数のライフサイクルはクラスのライフサイクルに依存します.静的変数は呼び出されると、プログラムが終了するまでメモリに常に存在します.静的変数はログアウトされません.静的変数にも役割ドメインがあり、役割ドメイン以外では使用できません.
コードを見てみましょう
class test
{
    public $var1 = 'instance var';
    static public $var2 = 'static var';

    public function getVar1()
    {
        return $this->var1;
    }

    static public function getVar2()
    {
        self::$var2 = 'new static var';
    }
}
$t = new test();
echo $t->getVar1();
echo "<br />";
echo test::$var2;
echo "<br />";
test::getVar2();
echo test::$var2;

上記の例の出力結果は次のとおりです.
instance var
static var
new static var
上記の例では、testクラスを定義し、2つの変数、インスタンス変数$var 1および静的変数$var 2、2つのクラスメソッド、インスタンスメソッドgetVar 1()および静的メソッドgetVar 2()を定義した.
インスタンス変数は、付与および論理演算を含むクラスインスタンスで変数にアクセスするには、まずクラスインスタンスをインスタンス化する必要がありますが、静的変数はクラスインスタンスを必要とせず、直接クラス名::アクセスを使用できます.
静的変数を使用するタイミング:
変数がクラスに宣言されている場合、変数はプログラム全体の実行中に呼び出される可能性があります.変数の値は大きな文字列または配列または他のコンテンツであり、変数の値はほとんど変更されません.