Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何使静态继承属性独立于其他子属性_Php_Oop - Fatal编程技术网

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

PHP:如何使静态继承属性独立于其他子属性,php,oop,Php,Oop,我们想要实现的是继承ChildrenA::$property独立于其他类。如果在类的默认值中声明ChildrenA::$属性,则它将变得独立 //# ============ Declare class Class ParentClass{ public static $property = ["parent"=>"im Parent"]; } Class ChildrenA extends ParentClass { //# m

我们想要实现的是继承ChildrenA::$property独立于其他类。如果在类的默认值中声明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 Result:ParentClass和ChildrenB还具有ChildrenA静态属性

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

如何给孩子一个独立的

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