如何将父类中设置的变量传递给子类?

问题描述 投票:0回答:2
class a
{
    public function __construct()
    {
        $this->id = 123;
    }
}

class b extends a
{
    public function __construct()
    {
        echo parent::id;
    }
}

如何将第一个类 $this 中设置的变量传递给第二个类?

php oop
2个回答
5
投票

正确的方法是在子类中简单地使用

$this->id
。所有公共/受保护的变量都可以通过这种方式供子类使用。通过分配
$this->id
而不声明它,您已经隐式地将其公开。一般来说,您应该在基类中显式声明变量以记录您将其公开的意图:

class a
{
    public $id;

    public function __construct()
    {
        $this->id = 123;
    }
}

在尝试访问父类设置的成员之前,请记住调用

parent::__construct()
。与某些语言(C++)不同,父类的构造函数不会自动为您调用。

class b extends a
{
    public function __construct()
    {
        parent::__construct();
        echo $this->id;
    }
}

0
投票

你可以使用

parent::__construct()
来获取在父类中初始化的东西。如果您在子类中没有任何要初始化的内容,则可以避免在子类中使用
__construct()
,它将自动采用父类构造。

© www.soinside.com 2019 - 2024. All rights reserved.