Нет, конструктор родительского класса не вызывается, если дочерний класс определяет конструктор.
Из конструктора вашего дочернего класса вы должны вызвать конструктор родительского класса:
parent::__construct();
Передача параметров, если необходимо.
Как правило, вы будете делать это в начале конструктора дочернего класса, перед любым конкретным кодом; это означает, что в вашем случае у вас будет:
class Child extends Base {
function __construct() {
parent::__construct();
echo 'Child __construct<br/>';
}
}
И, для справки, вы можете взглянуть на эту страницу руководства по PHP: Конструкторы и деструкторы - здесь говорится (цитирование) :
Примечание: Родительские конструкторы не вызываются неявно, если дочерний класс
определяет конструктор.
Для того, чтобы
запустить родительский конструктор, вызов
parent::__construct()
в пределах
требуется дочерний конструктор.