Родительский метод __construct()
, определенный в классе b, будет запускаться автоматически, если вы создадите экземпляр дочернего класса a, , если не существует метод __construct()
, определенный в классе a.
class a extends b {
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();
Если в классе a определен метод __construct()
, то он отменяет использование метода __construct()
в классе b .... он будет запускать вместо метод класса b __construct()
class a extends b {
public function __construct()
{
echo 'In A Constructor';
}
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();
Таким образом, если в вашем дочернем классе определен метод __construct()
, вам необходимо явно вызвать конструктор для родителя, если вы хотите выполнить его также.
class a extends b {
public function __construct()
{
parent::__construct();
echo 'In A Constructor';
}
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();