我已经搜索过这个问题,但令人惊讶的是没有发现任何相关内容 我正在创建动态创建的属性到父类中,我试图在类子中访问它们。
这是我的代码:
class Parent_class {
public $var = '123';
function __set($name, $value){
$this->$name = $value;
}
}
class Child_class extends Parent_class{
}
$parent = new Parent_class();
$child = new Child_class();
$parent->new_property = 'value';
echo $parent->new_property; // returns 'value'
echo $child->var; // returns '123'
echo $child->new_property; // returns 'Notice: Undefined property Child_class::$new_property'
如何在父类中访问动态创建的属性?
答案 0 :(得分:0)
我设法通过使用__get魔术方法和静态数组来获得解决方法。
class Parent_class {
public $var = '123';
private static $_global = array();
function __set($name, $value){
self::$_global[$name] = $value;
}
function __get($name){
return self::$_global[$name];
}
}
class Child_class extends Parent_class{
function echoparent(){
return $this->new_property;
}
}
$parent = new Parent_class();
$child = new Child_class();
$parent->new_property = 'value';
echo $parent->new_property; // returns 'value'
echo $child->var; // returns '123'
echo $child->new_property; // returns 'value'
echo $child->echoparent(); // returns 'value'