Статические переменные PHP в абстрактном родительском классе: вопрос в примере кода!

Быстрый код с включенным вопросом:

abstract class ClassParent {
    public static $var1 = "ClassParent";
}

class ClassChild1 extends ClassParent{
    public static function setvar1(){
        ClassChild1::$var1 = "ClassChild1";     
    }
}

class ClassChild2 extends ClassParent{
    public static function setvar1(){
        ClassChild2::$var1 = "ClassChild2";
    }
}


ClassChild1::setvar1();

echo ClassChild2::$var1;
// Returns "ClassChild1". Shouldn't this still be "ClassParent"?

Я предполагаю, что вышеуказанное поведение является ожидаемым, а не ошибкой PHP. В этом случае, как я могу объявить статическую переменную в родительском классе, которая будет обрабатываться отдельно для дочерних классов. Другими словами, я хочу иметь отдельные статические значения НА КЛАСС РЕБЕНКА. Должен ли я объявить статическую переменную специально в дочерних классах или есть другой способ?

Спасибо!

12
задан Aron 1 April 2011 в 12:40
поделиться