は、クラス メンバーまたはメソッドを静的として宣言するため、クラスをインスタンス化せずに直接アクセスできます。静的メンバー (静的メソッドを除く) には、オブジェクトを通じてアクセスできません。
PHP4と互換性を持たせるため、「visibility」が指定されていない場合、プロパティとメソッドはデフォルトでpublicになります。
静的メソッドはオブジェクトを通じて呼び出す必要がないため、疑似変数 $this は静的メソッドでは使用できません。
-> 演算子を使用してオブジェクトから静的プロパティにアクセスすることはできません。
:: メソッドを使用して非静的メソッドを呼び出すと、E_STRICT レベルのエラーが発生します。
他のすべての PHP 静的変数と同様、静的プロパティは文字値または定数にのみ初期化でき、式は使用できません。 したがって、静的プロパティを整数または配列に初期化することはできますが、別の変数や関数の戻り値、またはオブジェクトを指すことはできません。
PHP5.3.0 以降では、変数を使用してクラスを動的に呼び出すことができます。ただし、この変数の値をキーワード self、parent、または static にすることはできません。
例 #1 静的メンバーのコード例
リーリー例 #2 静的メソッドのコード例
リーリー静的変数と静的メソッドの概要
静的変数
静的変数は関数のスコープ内にのみ存在する変数ですが、関数が実行された後もこの変数の値は失われません。つまり、変数は次回この関数が呼び出されたときにも元の値を保持します。 。変数を静的として定義するには、変数の前に static キーワードを追加するだけです。
クラスでは、static キーワードには主に 2 つの用途があります。1 つは静的メンバーの定義、もう 1 つは静的メソッドの定義です。クラス内では、スコープ修飾子 (::) を使用して、さまざまなレベルのスコープの変数にアクセスできます。
静的メソッド
静的メソッドと非静的メソッドの間には重要な違いがあります。静的メソッドを呼び出すときに、クラスのインスタンスを持つ必要がなくなりました。
静的メソッドと非静的メソッドを使用するための原則: まず、メソッドに $this 変数が含まれていない場合は、静的メソッドにする必要があります。クラスのインスタンスが必要ない場合は、静的クラスを使用することもできます。これにより、クラスの作業をインスタンス化する必要がなくなります。さらに、静的メソッドは特定のインスタンスに属さないため、$this 変数を静的メソッドで使用することはできません。