PHP:如何使静态继承属性独立于其他子级

时间:2019-04-10 08:50:18

标签: php oop

我们要实现的是继承独立于其他类的ChildrenA :: $ property。如果在类的默认值中声明ChildrenA :: $ property,它将变得独立。

//# ============ Declare class
    Class ParentClass{
        public static $property = ["parent"=>"im Parent"];
    }

    Class ChildrenA extends  ParentClass {
        //# must put in init because in real case the value is an expression
        public static function init(){
            static::$property["childrenA"] = "Im Children A";
        }
    }
    Class ChildrenB extends  ParentClass {
}
//# =============================================

//# in real case this called in app singleton
ChildrenA::init();

var_dump(ChildrenB::$property);

var_dump(ParentClass::$property);

var_dump结果:ParentClass和ChildrenB也具有ChildrenA静态属性

array(2) {
  'parent' =>
  string(9) "im Parent"
  'childrenA' =>
  string(13) "Im Children A"
}

如何让孩子独立A

1 个答案:

答案 0 :(得分:0)

不可能具有下面提到的动态静态继承属性。 但是它给出了存储在classCallerContainer中的想法。 Here是我在其他帖子中的答案和代码示例