От php.net
Если дочерний элемент не определяет конструктор, он может быть унаследован от родительского класса, как метод нормального класса (если он не был объявлен как закрытый).
Из того, что я понимаю, если я не определяю конструктор в дочернем, будет вызываться родительский конструктор.
Итак, вот мой пример, я создал родительский класс с конструктором. Инициированный как дочерний, так и родительский класс, однако вызывает следующее предупреждение: Предупреждение: Отсутствует аргумент 1 для транспортного средства :: __ construct()
Вот пример кода.
class vehicle{
protected $type;
function __construct($type){
$this->type = $type;
echo "Type chosen: $this->type";
}
}
class car extends vehicle{
}
$vehicle = new vehicle("sport");
$car = new car;
Ну, это вызов конструктора родительского класса. И поскольку вы не предоставляете никаких аргументов для конструктора, когда вы объявляете объект $car
, он дает вам предупреждение об отсутствующем параметре.
Вы должны инициализировать объект дочернего класса, предоставив аргумент "type" следующим образом:
$car = new car("family");
vehicle
есть обязательный аргумент, это означает, что уcar
тот же обязательный аргумент ..... но вы пытаетесь создать экземплярcar
без этого аргумента, поэтому он вызывает родительский конструктор и выдает ошибку, потому что вы не передал этот аргумент при попытке создать его экземпляр