问题的快速代码包括:
- 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错误.在这种情况下,我怎么能在父类中声明一个静态变量,这个变量将被单独处理为子类.换句话说,我想要具有单独的静态值PER CHILD CLASS.我必须在小孩类中特别声明静态变量,还有另一种方式吗?
谢谢!