具有遗产的影响属性

时间:2013-12-23 20:31:12

标签: php codeigniter inheritance

我有类似的东西:

class MY_Controller extends CI_CONTROLLER
{

public $user = 'Default';

public function __construct()
{
    parent::__construct();
    $this->user = 'Construct';

}

public function getUser() { return $this->user;}    

public function signIn()
{
    $this->user = 'SignUp';
    redirect('membre');
}   
}

class MY_Membre_Controller extends MY_Controller
{
    public function __construct()
{
    parent::__construct();
    if(!parent::isLogOn()) {
        redirect('accueil');
    }

}
}

在我的application / core / MY_Controller.php

在我的控制器中,我有:

class Membre extends MY_Membre_Controller 
{

public function __construct()
{
    parent::__construct();
}

public function profil()
{
    echo 'login = ' . $this->getUser();
   }

所以,有人可以说我为什么用户属性总是'Construct'值,当我可以使用signIn()方法并将它重定向到Membre / profil之后?

1 个答案:

答案 0 :(得分:1)

这是因为你的代码总是通过构造函数,但并不总是通过signIn方法。重定向后,所有这些都是从头开始的。所以:

登录:

  • 构造函数将user设置为'construct'
  • signIn方法将用户设置为“signUp”
  • 重定向到'membre'
  • 再次,构造函数将用户设置为'construct'
  • ...