php类和扩展,变量范围混乱

时间:2017-10-18 13:36:19

标签: php

我对如何正确访问父类中的变量感到困惑,该变量是在子类中设置的。

假设我们有父类(作为$ user):

class user
{
   public $details = [];
}

子类(作为$ login):

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'];

然而,"详情"似乎是空的。我对此完全没错吗?不要以为我非常了解范围。

1 个答案:

答案 0 :(得分:1)

$user = new user();

这会创建一个新对象,其details属性为空数组。

$login = new login();

这会创建第二个新对象,它自己的 details属性为空数组。

$login->do_login();

这将填充$login对象的details数组。 $user对象details仍为空。

要访问已填充的数组:

$login->details['username'];