как установить и получить родительские переменные из дочерних классов — mvc

У меня есть скрипт MVC.

$load = new $controller($modelName, $action);
if (method_exists($load, $action)){
$load->{$action}($query);
}

и я создаю расширенные классы:

class testController extends Controller
{
public function __construct($model, $action)
{
parent::__construct($model, $action);
$this->_setModel($model);
}
}

Вот мой вопрос, я хотел бы установить переменную в контроллере и может получить и изменить ее с помощью расширенных классов.
например:

class Controller
{
var $myvar="defaultCaption";
}

и измените его расширенными классами, например, измените его одним расширенным классом, затем получите новое значение из другого расширенного класса. но это просто загрузить значение по умолчанию.

Я хочу, чтобы что-то работало так:

class Controller
{
protected $myvar="defaultCaption";

public function __construct()
{
}
}

class myController extends Controller
{
public function __construct()
{
parent::__construct();
}
}

class myController2 extends Controller
{
public function __construct()
{
parent::__construct();
}
}

$mc = new myController;
$mc->myvar= "XXX";

$mc2= new myController2;
echo ($mc2->myvar);//this should be XXX

Любая помощь будет оценена.

0

Решение

Это просто, просто доступ к вещам из дочернего класса не должен быть privateиначе будет работать

class Controller
{
//protected $myvar="defaultCaption";
public $myvar="defaultCaption"; // to access this from outside the class

public function __construct()
{
echo $this->myvar;
}
}

class myController extends Controller
{
public function __construct()
{
$this->myvar = 'myCaption';

parent::__construct();
}
}

$mc = new myController; // outputs: myCaption
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]