У меня есть проблема, чтобы поделиться со всеми вами.Дело в том, что я хотел бы извлечь значение сложного объекта, имя которого хранится в строковой переменной.
Как вы, возможно, знаете, вы можете сделать следующее:
$foo = 'Hello World';
$var = 'foo';
echo var_dump($$var); // Output: string(11) "Hello World"
Проблема возникает, когда вы пытаетесь сделать:
$data = new stdClass();
$data->param["foo"]["bar"] = 'Hello World';
$var = 'data->param["foo"]["bar"]';
echo var_dump($$var); // Output: NULL
Я могу себе представить, почему парсер не может этого сделать.Единственный обходной путь, который я могу придумать, - это разделить $ var на более мелкие куски ('->', '[', ']', ...) и оценить его шаг за шагом.
Кто-нибудь знаетболее элегантное решение?
Большое спасибо