2017-10-18 71 views
0

我很困惑如何正确访问父类中的变量,这是在子类中设置的。php类和扩展,变量范围混淆

说我们有父类(如$用户):

class user 
{ 
    public $details = []; 
} 

儿童类(如$登录):

class login extends user 
{ 
    function do_login() 
    { 
     // something before here to grab their details from the DB 
     $this->details = $grabbed_user_details; 
    } 
} 

然后在调用一切,我希望做脚本例如:

$user = new user(); 
$login = new login(); 
$login->do_login(); 
$user->details['username']; 

但是,“细节”似乎是空的。我完全错误的方式吗?不要以为我对范围还是很了解。

+0

还没有存储在'$ user'但在'$ login'什么。尝试'$ login-> details ['username']' – LKKP4ThX

+0

这就是我困惑的地方,我想通过在login类中设置它,因为它扩展了用户类,它会将它设置为$ user? – NaughtySquid

+0

不是,登录名是用户以及您在登录类中创建的扩展名。 – LKKP4ThX

回答

1
$user = new user(); 

这将创建一个新的对象与它的details属性是一个空数组。

$login = new login(); 

这将创建第二个新的对象与它自己details属性是一个空数组。

$login->do_login(); 

这将填充$login对象的数组details$user对象的details保持空白。

要到上人口的数组:

$login->details['username'];