@bilyaev82

Как вызвать дочерний класс в методе родителя?

Здравствуйте.
Есть такой код:
echo (new Select->setAttr('name', 'list'))->add( (new Option())->setText('item1') )->show()
Я не знаю как в методе add вызвать дочерний класс Option описанным выше способом.
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
profesor08
@profesor08
1. Это не jQuery
2. Если ->setText не возвращает объект option, то не удивительно что не работает
$select = new Select();
$select->setAttr("name", "list");

$option1 = new Option();
$option1->setText("item-1");
$select->add($option1);

$option2 = new Option();
$option2->setText("item-2");
$select->add($option2);

echo $select->show();
Ответ написан
Комментировать
@quiex
Скорее всего вы имеете в виду не "вызвать класс", а принять его.
Предположу, что Option::setText() у вас возвращает void, а Select::add() принимает Select(Option).
Вам нужно либо в setText() возвращать ссылку на экземпляр (return $this), либо поместить инициализацию text в конструктор класса Option, и принимать его в $select->add(new Option('text')).
Ответ написан
Ваш ответ на вопрос

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

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