static キーワードは、属性またはメソッドがクラスの特定のインスタンスではなく、クラスに関連していることを宣言するため、このタイプの属性またはメソッドは「クラス属性」または「クラス メソッド」とも呼ばれます。
static キーワードを使用すると、インスタンス化せずに、クラス内の静的プロパティと静的メソッドに直接アクセスできます。
アクセス制御権限が許可する場合は、このクラスのオブジェクトを作成せずに、クラス名と 2 つのコロン「::」を使用して直接呼び出すことができます。
静的プロパティとメソッドは静的プロパティとメソッドにのみアクセスでき、非静的プロパティとメソッドにはクラスからアクセスできません。静的プロパティと静的メソッドが作成されるとき、呼び出すことができるこのクラスのインスタンスがまだ存在しない可能性があるためです。
静的属性はメモリ内に 1 つのコピーのみを持ち、すべてのインスタンスによって共有されます。
現在のクラスの静的メンバーにアクセスするには、self:: キーワードを使用します。
静的プロパティの公開機能
クラスのすべてのインスタンスは、クラス内の静的プロパティを共有します。
つまり、メモリ内に複数のインスタンスがあっても、静的属性のコピーは 1 つだけ存在します。