我正在使用MVC上下文
我有一个用作库的User类(User.php)
然后我有一个控制器类来处理来自用户的输入(controller.php)
这是怎么回事:
我想维护该引用,但是一旦传递给控制器,它似乎会占用另一个值。我该怎么办呢?
答案 0 :(得分:2)
$this
始终指向它所使用的类实例。所以你的控制器中的$this
和你的图书馆总会指向不同的东西,你几乎无能为力。
您可以做的是更改它接受您要使用的参数的寄存器功能的定义,并引用此参数而不是使用$this
。另一个选项是在类中定义一个字段并使用该字段作为参考,这样所有类方法都可以在同一个对象上工作。
我认为这不是你想要达到的目标。
class UserController {
// User library instance
private $User = new User();
private $token = null;
public function registerhandler() {
$this->token = $this->User->register();
}
private function verifyhandler() {
$valid = $this->User->verify($this->token);
...
}
}
class User {
private $sharedData;
public function register() {
// register all common data in $sharedData property
...
return $token;
}
public function verify($token) {
// use shared data and method input to verify the data
...
return true;
}
}