/*
------------------------------------------- ----------------------------------
| この記事は Haohappy<
| = 章のクラスとオブジェクトのメモ
| = 不要なトラブルを避けるため、転載しないでください。批判や修正は大歓迎です。私たちはすべての PHP 愛好家とともに進歩していきたいと考えています。
= PHP5 Research Center: http://blog.csdn.net/haohappy2004
--------- ----- -------------------------------------- ----- ---------------
*/
セクション 7 - クラスの静的メンバー
クラスの静的メンバークラスと一般クラスのメンバーは異なります。静的メンバーはオブジェクトのインスタンスとは関係がなく、クラス自体がカプセル化する関数とデータを実装するためにのみ使用されますが、関数とデータは含まれません。特定のオブジェクトの静的メンバーには、静的メソッドと静的プロパティが含まれます。
静的プロパティには、クラスにカプセル化されるデータが含まれており、クラスのすべてのインスタンスで共有できます。固定クラスと制限されたアクセス メソッドでは、クラスの静的プロパティは関数のグローバル関数と非常によく似ています。 変数
次の例では、静的プロパティ Counter::$count を使用します。これは Counter に属します。この例では、getCount メソッドは Counter::$count の代わりに self::$count を返します。このクラスを使用して参照することはできません。
静的メソッドは、クラスによってカプセル化される必要がある関数を実装し、特定のオブジェクトとは関係がありません。静的メソッドは、クラスの属性に完全にアクセスできます。
6.3 の例では、getCount は通常のメソッドですが、PHP では this 変数を作成しません。ただし、getCount がどのオブジェクトにも属していない場合は、静的メソッドを使用する必要があります。呼び出した場合でも、PHP はこの変数を静的メソッド内に作成しません。
例 6.7 は、getCount を静的メソッドに変更した 6.3 からのものです。Static キーワードは、インスタンスが getCount を呼び出すのを防ぐことはできませんが、PHP はメソッド内でこの変数を作成しません。 this-> を使用して呼び出すと、エラーが発生します。
//6.3 例は、セクション 4 - コンストラクターと分析を参照しています。コンストラクター内の例 (前の記事を参照) を比較します。
//static メソッドと通常のメソッドの違いを簡単に把握できます。
これが静的か非静的かを判定するメソッドを書くことができます。もちろん、static キーワードを使用すると、このメソッドはどのように呼び出されても常に static になります。
クラスでも定数属性を定義できます。public static を使用する必要はなく、const を使用するだけです。定数属性は常に静的であり、クラスをインスタンス化するオブジェクトの属性ではありません。 >
コードをコピー
コードは次のとおりです:
class Counter
{
private static $count = 0;
const VERSION = 2.0;
function __construct()
> 自分: :$count;
static function getCount( )
{ Counter()
//出力 1
print() . "
n");
//クラスのバージョン属性を出力します
print("Version used: " . Counter::VERSION . "
n");
?>