如果$myObj
是:循環訪問對象屬性數組時,如何返回給定現有鍵的數組值?
$myObj = new stdClass();
$myObj = array(1 => 100, 2 => 200, 3 => 300);
echo $myObj[1]; // returns 100, as expected
但通過性的這樣一個數組迭代時:
$properties_array = array('property_one','property_two');
// and $myObj looks like $myObj->property_one = array(0 => 12345);
foreach ($properties_array as $property) {
echo $property;
// returns property name, as expected
print_r($myObj->$property);
// returns an array, as expected (ex. Array([0] => 12345))
echo $myObj->$property[0];
// expected '12345', instead throws an error: 'Undefined property: stdClass::$myObj'
}
爲什麼會print_r($myObj->$property);
工作不如預期,但echo $myObj->$property[0];
拋出一個錯誤?
BTW是什麼'$ properties_array'結構??你可以給我們看一看..?? – Gautam3164
當然,感謝您的幫助。非常直截了當:'$ properties_array = array('property_one','property_two');'和'$ myObj'就像'$ myObj-> property_one = array(0 => 12345);' – Ryan
您是否嘗試過' echo $ myObj - > {$ property} [0];'? – Vallel