Почему я не могу использовать такой код?
<?php
class NoConstructor {
}
class ChildWithConstructor extends NoConstructor {
public function __construct() {
parent::__construct();
// do something
}
}
$foo = new ChildWithConstructor();
// **Fatal error: Cannot call constructor in file.php on line 8**
Eg. В классах Java по умолчанию нет конструктора args. Его можно вызывать, даже если он явно не определен.
Поведение PHP может вызвать проблемы при удалении конструктора args из родительского класса, например. когда мы считаем, что он больше не нужен.
Кто-нибудь знает, почему создатели PHP сделали это таким образом?