Чего мы хотим добиться, так это унаследовать свойство 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 Результат: ParentClass и ChildrenB также имеют статическую собственность ChildrenA
array(2) {
'parent' =>
string(9) "im Parent"
'childrenA' =>
string(13) "Im Children A"
}
как дать независимым детям A