ホームページ >バックエンド開発 >PHPチュートリアル >PHP 5.0 オブジェクト モデルのような静的メンバーの詳細な探索_PHP チュートリアル
静的プロパティには、クラスにカプセル化されるデータが含まれており、クラスのすべてのインスタンスで共有できます。実際、固定クラスに属し、アクセス方法が制限されていることに加えて、クラスの静的プロパティは関数のグローバル変数と非常によく似ています。
次の例では静的プロパティ Counter::$count を使用します。これは Counter クラスに属しており、Counter のインスタンスには属しません。これを使用して参照することはできませんが、self または他の有効な命名式を使用できます。この例では、getCount メソッドは Counter::$count ではなく self::$count を返します。
静的メソッドは、クラスによってカプセル化される必要がある関数を実装し、特定のオブジェクトとは何の関係もありません。静的メソッドは、クラスの属性に完全にアクセスしたり、オブジェクトのインスタンスによってアクセスしたりすることができます。
前の例では、getCount は -> で呼び出される通常のメソッドですが、メソッドは使用されませんが、getCount は属しません。場合によっては、有効なオブジェクトがない場合でも、静的メソッドを使用する必要があります。たとえオブジェクトから呼び出したとしても、PHP はこの変数を静的メソッド内に確立しません。 6.7 では、getCount が 6.3 から静的メソッドに変更されました。 Static キーワードは、インスタンスが -> 演算子を使用して getCount を呼び出すのを防ぐことはできませんが、this-> を使用して呼び出す場合、PHP はこの変数を作成しません。
//6.3 例 セクション 4 - コンストラクターとデストラクターの例を参照してください (前の記事を参照) 2 つの例を比較することで、
//static メソッドとの違いをよく理解できます。通常のメソッド
メソッドが静的に呼び出されたかどうかを、これが作成されたかどうかで確認できます。 もちろん、static キーワードを使用すると、メソッドはどのように呼び出されても常に静的になります。
クラスでは、定数属性を定義することもできます。 public static を使用する必要はなく、const キーワードを使用するだけです。定数属性は常にクラスの属性であり、クラスをインスタンス化するオブジェクトの属性ではありません。
リスト 6.7 静的メンバー