class a
{
public function __construct()
{
$this->id = 123;
}
}
class b extends a
{
public function __construct()
{
echo parent::id;
}
}
如何将第一个类 $this 中设置的变量传递给第二个类?
正确的方法是在子类中简单地使用
$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;
}
}
你可以使用
parent::__construct()
来获取在父类中初始化的东西。如果您在子类中没有任何要初始化的内容,则可以避免在子类中使用 __construct()
,它将自动采用父类构造。