ホームページ  >  記事  >  バックエンド開発  >  オブジェクト モデル PHP 50 オブジェクト モデル 静的メンバーの詳細な探索

オブジェクト モデル PHP 50 オブジェクト モデル 静的メンバーの詳細な探索

WBOY
WBOYオリジナル
2016-07-29 08:37:39888ブラウズ

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

コードは次のとおりです:

class Counter { const VERSION = 2.0; { self::$count++

}

function__destruct( )
{
self: :$count--;
}
static function getCount()
{
return self::$count;
}
};
//インスタンスを作成すると、__construct() が実行されますc = new Counter( );
//出力 1
print(Counter::getCount() . "n");
//クラスのバージョン属性を出力
print("Version used: " . Counter::VERSION . "ん");
上記は、オブジェクト モデルの静的メンバー、PHP 50 オブジェクト モデルの詳細な探索を紹介しており、オブジェクト モデルの内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。