我有一个问题要与大家分享。事情是,我想提取名称存储在字符串变量中的复杂对象的值。从字符串获取对象值
正如你可能知道,你可以做到以下几点:
$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分成更小的块(' - >','[',']',...)并逐步评估它。
有谁知道更优雅的解决方案?
非常感谢
我不认为它有可能使用像 - >或[以这种方式... – Hannes 2010-12-23 12:03:01
“变量变量es“只是有一个可变的变量名称。它们不是可变表达式。抱歉,没有更好的解决方法。但是,你能详细说明一下你的用例吗? – mario 2010-12-23 12:04:10