Есть некий класс, в который вносятся данные.
Задача. после внесения всех данных этот экземпляр класса нужно преобразовать в json.
Пример класса:
class Text
{
protected string $text;
protected Text $children;
protected string $type = "text";
public function setText(string $text): self
{
$this->text = $text;
return $this;
}
public function setChildren(Text $children): self
{
$this->children = $children;
return $this;
}
public function expose()
{
return get_object_vars($this);
}
}
Когда я делаю вот так, то все как бы хорошо
$text = (new Text())->setText("text");
echo json_encode($text->expose());
// {"text":"text","type":"text"}
Но как только я указываю children
$text2 = (new Text())->setText("text")->setChildren($text);
echo json_encode($text2->expose());
// {"text":"text","children":{},"type":"text"}
То внутренний объект не форматируется, в свойстве children находится пустота
Как это исправить?
Песочница
здесь