В методе start()
класса Core
вы используете переменную $child
, которая не является свойством объекта.Вместо этого напишите:
class Core {
public $child;
public function start() {
$this->child = Loader::instance('Child')->child;
print_r($this);
}
}
и скажите мне, хотите ли вы этого достичь.
РЕДАКТИРОВАТЬ:
Я считаю, что вы можете достичьчто вы хотите, ссылаясь на статические переменные.Но будьте осторожны, как они работают.Более того, вы не увидите результат, вызвав print_r()
.
Вот код:
class Core {
static $child;
public function start() {
// invoking code that changes Core::$child inside
$child = Loader::instance('Child');
print_r($this);
}
}
и
class Child extends Core {
public function __construct() {
parent::__construct();
// changing static variable $child of both Core and Child
self::$child = 'test';
}
}