Karponter
@Karponter

Как обойти final конструктор?

В общем решил я немного расширить стандартный SimpleXMLElement для собственных нужд, и мне нужно при инициализации объекта вызвать конструктор родительского класса SimpleXMLElement.
Вот только не тут то было: конструктор родительского класcа оказался финальным, и перегрузить его конструктором наследника не получается.
Вопрос: как обойти?

class MyClass extends SimpleXMLElement {
  function __construct() {
		parent::__construct('<data></data>');
	}
}

PHP Fatal error: Cannot override final method SimpleXMLElement::__construct()
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
class MyClass extends SimpleXMLElement {
  function create_instance() {
    $instance = new self('<data></data>');
    ...
    return $instance;
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы