PHP基本的OOP问题

Jam*_*mes 0 php oop

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

class b extends a
{
    public function __construct()
    {
        echo parent::id;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

mea*_*gar 5

正确的方法是简单地$this->id在子类中使用.所有公共/受保护变量都可通过这种方式用于子类.通过分配$this->id而不声明它,你隐含地将其公之于众.通常,您应该在基类中显式声明该变量,以记录您将其公开的意图:

class a
{
    public $id;

    public function __construct()
    {
        $this->id = 123;
    }
}
Run Code Online (Sandbox Code Playgroud)

只需记住parent::__construct()在尝试访问父类设置的成员之前调用.与某些语言(C++)不同,不会自动为您调用父类的构造函数.

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