読者です 読者をやめる 読者になる 読者になる

staticとconstはクラスのもの、プロパティはオブジェクトのもの。

php

追記

コメントでPHP5.3からはstaticキーワードが使えるのを教えてもらった。
勉強しないとダメだなぁ。。

子クラスのconst,staticの値を使うのは、PHP5.3からできます。

var_dump(static::$S);

http://www.php.net/manual/ja/language.oop5.late-static-bindings.php

元記事

久々にconstとか使ってハマってしまった。
オーバーライドせず子供のクラスが親のクラスのメソッドを使う場合に、
constは子供のものが使われると期待してしまった。

<?php

class ParentClass
{
    const C = 'parent const';
    static public $S = 'parent static';
    public $v = 'parent variable';

    public function pParent()
    {
        var_dump(self::C);
        var_dump(self::$S);
        var_dump($this->v);
    }
}

class ChildClass extends ParentClass
{
    const C = 'child const';
    static public $S = 'child static';
    public $v = 'child variable';
}

$c = new ChildClass();
$c->pParent();

プロパティはオブジェクトが持ってるものだから子供のものが使われるけど、
constはstaticと同様selfを使うからクラスのものなので親の値が使われると。

string(12) "parent const"
string(13) "parent static"
string(14) "child variable"