@hrvasiliy

Чем или как заменить конструктор?

Имеется базовый класс контроллера в конструкторе которого происходит проверка авторизованности пользователя. При создании дочерних классов возникла проблема: Если я в дочерних классах создаю новый конструктор, то он перекрывает конструктор базового класса.

Зачем я пытаюсь использовать конструктор в дочерних классах? - Один из примеров, это создание объекта модели конкретной страницы.

Можно ли как-то заменить конструктор? Или может быть есть вообще какой-то другой способ?
  • Вопрос задан
  • 359 просмотров
Решения вопроса 2
Skiphog
@Skiphog
Crutch developer
class A {
  public $firstname;

  public function __construct($firstname) {
    $this->firstname = $firstname;
  }
}

class B extends  A {

  public $lastname;

  public function __construct($firstname,$lastname) {
    parent::__construct($firstname);
    $this->lastname= $lastname;
  }
}

$class = new B('Vasya','Pupkin');

echo $class->firstname , $class->lastname;
Ответ написан
Комментировать
а в чем проблема-то?
class foo {
	public function __construct() {
		echo 'foo', PHP_EOL;
	}
}

class bar extends foo {
	public function __construct() {
		echo 'bar', PHP_EOL;
	}
}
$bar = new bar(); // выведет: bar


class foo {
	public function __construct() {
		echo 'foo', PHP_EOL;
	}
}

class bar extends foo {
	public function __construct() {
		parent::__construct();
		echo 'bar', PHP_EOL;
	}
}
$bar = new bar();
//выведет:
foo
bar
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы