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

问题描述 投票:-1回答:1

我们想要实现的是继承了与其他类无关的ChildrenA :: $属性。它变得独立如果在类默认值中声明ChildrenA :: $属性。

//# ============ 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结果:Parent Class和Children也有Children静态属性

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

如何让孩子独立

php oop
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.