У меня есть скрипт 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
Любая помощь будет оценена.
Это просто, просто доступ к вещам из дочернего класса не должен быть 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
Других решений пока нет …