我有一個問題要與大家分享。事情是,我想提取名稱存儲在字符串變量中的複雜對象的值。從字符串獲取對象值
正如你可能知道,你可以做到以下幾點:
$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