Может ли кто-нибудь объяснить мне, почему этот код работает?Вызов родительского конструктора в дочернем классе
<?php
class iParent
{
private $device;
private $browser;
public function __construct()
{
$this->device = 'iPad';
$this->browser = 'Safari';
}
public function getDetails()
{
return 'Device ' . $this->device . ' ' . 'Browser ' . $this->browser;
}
}
/**
*
*/
class iParentChild extends iParent
{
public function __construct()
{
echo 'IParentChild constructor';
}
public function display()
{
return $this->getDetails();
}
}
$obj = new iParentChild;
echo $obj->display();
// Output
Device iPad Browser Safari
Я думал, что он должен работать только тогда, когда я называю parent::__construct()
(инициализировать родительский конструктор) в конструкторе iParentChild
.
// UPDATE Я добавил __construct в iParentChild
В чем заключается путаница? Вы не указали конструктор 'iParentChild', поэтому он наследует один из родительского класса. Это так просто. –