PHP基本的OOP问题

时间:2011-03-21 02:24:10

标签: php oop

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

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

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

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:0)

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