我很难弄清楚如何在php中为实例化类添加变量值, 我一直在看reflectionClass并试图返回一个指定的变量,现在我最终得到了一个getter setter。 我真的很感激一些帮助,这是我的代码示例:
class controller
{
public $models;
private $load;
public function __construct()
{
$this->load = new loader();
}
public function action_being_run()
{
$this->load->set_model('model_name');
}
}
class loader
{
public function set_model($name)
{
{controller_class}->models[$name] = new model();
}
}
实例化控制器类而不将其分配给变量,只需:
new controller();
然后从控制器类中执行操作。
答案 0 :(得分:1)
您可以将对$this
的引用传递给set_model()
class controller
{
public $models;
private $load;
public function __construct()
{
$this->load = new loader();
}
public function action_being_run()
{
$this->load->set_model('model_name', $this);
}
}
class loader
{
public function set_model($name, &$this)
{
{controller_class}->models[$name] = new model();
}
}
您还需要将public $model
更改为public $models
。通过扩展类或仅使用魔术方法来访问模型,可能还有其他方法可以实现您的目标。
答案 1 :(得分:0)
像这样:
class tester{
public function lame(){
return 'super lame';
}
}
function after(){
return 'after function';
}
$tst = new tester; $tst->afterVar = 'anything'; $tst->afterFun = 'after';
echo $wh->afterVar;
echo $wh->afterFun();