如何设置和从子类获取父变量 - mvc
问题描述:
我有一个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
任何帮助,将不胜感激。
答
这很容易,只需访问从子类的东西你的父类项目不应该是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
不,我的问题是,我想类之间共享一些数据,但我不喜欢使用全局变量。 – poostchi 2014-09-25 10:19:38
这只是一个例子,你如何访问父类变量,它不是全局变量,它的类'属性 – 2014-09-25 10:20:52
你可以使用'$ this-> myvar ='myCaption';'子类中的任何地方 – 2014-09-25 10:21:40