クラスの静的メンバーは、一般的なクラス メンバーとは異なります。静的メンバーはオブジェクトのインスタンスとは関係がなく、クラスによってカプセル化される関数とデータを実装するためにのみ使用されますが、これには含まれません。静的メンバーには、静的メソッドと静的プロパティが含まれ、クラスにカプセル化されるデータが含まれており、実際にはクラスのすべてのインスタンスで共有できます。固定クラスと制限されたアクセス メソッドでは、クラスの静的プロパティは関数に非常に似ています。グローバル変数
次の例では静的プロパティ Counter::$count を使用します。これは Counter クラスに属し、どのクラスにも属しません。 Counter インスタンスを参照するためにこれを使用することはできませんが、self または他の有効な名前 Expression を使用できます。この例では、Counter::$count ではなく getCount メソッドが実装されています。クラスがカプセル化する必要がある関数であり、特定のオブジェクトとは何の関係もありません。静的メソッドは、クラスの属性に完全にアクセスすることも、オブジェクトのインスタンスによってアクセスすることもできます。 6.3 の例では、getCount は -> で呼び出される通常のメソッドですが、このメソッドは使用されません。場合によっては、有効なオブジェクトがないときに呼び出したい場合もあり、その場合は、オブジェクトから呼び出したとしても、PHP は静的メソッド変数内でこれを確立しません。 6.3 から getCount を静的メソッドに変更しました。Static キーワードは、-> 演算子を使用してインスタンスが getCount を呼び出すことを妨げません。
//6.3 の例は、セクション 4 - コンストラクターとデストラクター (前の記事を参照) の例を参照しています。2 つの例を比較すると、
//静的メソッドと通常のメソッドの違いが簡単に理解できます。
もちろん、static キーワードを使用した場合、どのように呼び出されても、このメソッドは常に静的です。
public static を使用せずに、定数プロパティを定義することもできます。定数プロパティは常にクラスのプロパティであり、クラスをインスタンス化するオブジェクトではありません。
クラス カウンター
{
private static $count = 0;
function __construct()
{
self::$count++
}
function __destruct()
{
self; ::$count--;
静的関数 getCount()
{
return self::$count
} ;
//インスタンスを作成すると、__construct() が実行されます
$c = new Counter();
//出力 1
print(Counter::getCount() . "
n"); /クラスのバージョン属性を出力します
print("Version used: " . Counter::VERSION . "
n");
http://www.bkjia.com/PHPjc/314234.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/314234.html
技術記事
クラスの静的メンバーは、一般的なクラス メンバーとは異なります。静的メンバーはオブジェクトのインスタンスとは関係がなく、クラスによってカプセル化される関数とデータを実装するためにのみ使用されますが、これには含まれません。特定のオブジェクト...