lxfr
@lxfr

Как обратиться к свойству метода объекта, если название метода хранится в переменной?

К примеру есть созданный экземпляр класса (объект):
$object = new stdClass();
$object->child = new stdClass(); //внутри еще 1 объект
$object->child->property = 1; //и у него есть свойство


Как получить доступ к значению $object->child->property , если данный путь ("child->property") у меня хранится в строке?

Т.е. имеется объект $object и строка$var = "child->property"; и требуется получить значение (1).
Вариант $object->{$var} не отрабатывает и говорит что

Undefined property: stdClass::$child->property
  • Вопрос задан
  • 943 просмотра
Решения вопроса 2
Разбить строку "child->property" на child и property и $object->{$var}->{$var}
Ответ написан
Комментировать
@Tem_ka
$prop = explode('->', $var);
get_object_vars($object)[$prop[0]]->{$prop[1]}
// OR
$object->{$prop[0]}->{$prop[1]}


И свойств у метода нет, они есть у объектов
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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