PHP 5.0オブジェクトモデルの深度探索などの静的メンバー
1660 ワード
静的な属性は、クラス内でカプセル化されるデータを含み、すべてのクラスのインスタンスによって共有することができる。実際には、固定クラスに属し、アクセス制限方式に加えて、クラスの静的属性は関数の大域変数に非常に類似している。次の例では静的属性Counter:$countを使用した。Counter類に属していますが、どのCounterの例にも属していません。thisで引用することはできませんが、selfまたは他の効果的なネーミング表現が使えます。例では、get Count方法は、Counter:$countではなく、self::$countを返します。静的な方法では、クラスの実装には、特定のオブジェクトとは関係なくパッケージ機能が必要です。 静的方法は大域関数と非常に似ている。 静的方法は、クラスの属性に完全にアクセスすることができ、また、オブジェクトのインスタンスによってアクセスすることができ、アクセスの限定語が何であるかにかかわらず、前文の例では、get Countは、一般的な方法であり、->で呼び出される。 PHPはthis変数を確立しています。方法は使用されていませんが、get Countは対象外です。場合によっては有効なオブジェクトが存在しない時に呼び出したい場合もあります。静的な方法を使うべきです。 PHPは静的な方法の内部にthis変数を確立しないで、たとえオブジェクトからそれらを呼び出しても、例6.7は6.3によってget Countを静的な方法に変えてきます。 Staticキーワードは、例としてget Countを呼び出すための演算子では阻止できませんが、PHPは方法の内部にthis変数を作成しません。this->を使って呼び出したら、エラーが発生します。/6.3例は第4節の構成関数と解析関数の例を指します。あなたはよく/static方法と普通の方法の違いを把握できます。thisが確立されているかどうかを判断する方法を書いてください。 もちろん、あなたがスタティックを使ったら。 キーワードは、いくら呼び出しられても、この方法は常に静的です。あなたのクラスも定数属性を定義できます。publicを使用する必要はありません。 staticは、constキーワードだけでいいです。 定数属性は常に静的であり、これらはクラスの属性であり、このクラスのオブジェクトの属性を具体化するのではなく、Listingである。 6.7 Static メンバー
class Counter
{
private static $count = 0;
const VERSION = 2.0;
function __construct()
{
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 . "n");
?>