きょう気づいたのだけど。PHPマニュアルに気になる記述が。
PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。 これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。
つーかもう少しわかりやすい言葉使えと思うけど。
ちなみに、いまは5.2です。これからこういう機能が追加されるぞという話。
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // これで、遅延静的束縛が行われます
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();
?>
上の例の出力は以下となります。
B
ほー。
static::って、これまたまたずいぶんわかりづらい語を選んだな(笑)。
new static()
と書けるのなら、ずいぶん役に立ちそう。っていうかなんかおもしろいなこの書きかた。