Мне было интересно, можно ли его вызвать __construct() перед дочерним __construct() с наследованием в PHP.
Пример:
class Tag {
__construct() {
// Called first.
}
}
class Form extends Tag {
__construct() {
// Called second.
}
}
new Form();
В идеале я мог бы сделать что-то между ними. Если это невозможно, есть ли альтернатива, которая позволила бы мне это сделать?
Причина, по которой я хочу сделать это, - загрузить кучу настроек по умолчанию, характерных для тега, которые Form может использовать при вызове __construct().
EDIT: Извините, забыл добавить это. Я бы предпочел не вызывать родительский класс из дочернего класса. Это просто потому, что он предоставляет некоторые частные данные (для родителя) для ребенка, когда вы передаете его как аргумент
Это то, что я хочу сделать:
$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Tag.php
class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}
form.php
class Form extends Tag {
__construct() {
echo $this->publicInfo;
}
}
Имеют смысл?
Спасибо! Мэтт Мюллер