我有这个对象:
stdClass Object (
[0] => stdClass Object (
[type] => A
[quantity] => 30
)
[1] => stdClass Object (
[type] => P
[quantity] => 129
)
)
但是,我无法访问子对象(例如$Data->0->quantity
),因为在PHP中无法访问对象的数字属性。
如何在不诉诸循环的情况下访问子对象?
答案 0 :(得分:1)
与公共变量的任何对象一样:
$oStdClass->0->quantity = 10;
或者循环播放它们。
foreach($oStdClasses as $oStdClass) {
$oStdClass->quantity = 10;
}
答案 1 :(得分:1)
这似乎是一个奇怪的极端情况 - 对象通常不应该具有无效的PHP变量名称的属性 - 但它仍然可以获得那里的所有变量。
使用get_object_vars。
// The following code doubles all of the "quantity" properties of
// all of the sub-objects.
foreach( get_object_vars( $strangObject ) as $key => $value )
{
// in here, $key will be your (numeric) property name of the outer object
// and $value will be the object stored at that property.
$value->quantity *= 2;
}
答案 2 :(得分:0)
使用for-each循环。 (如果我理解你的问题是正确的......)
答案 3 :(得分:0)
通过箭头->
运算符访问对象的方法和/或属性。因此,要访问数量,您需要:
$quantity = $object->quantity;
答案 4 :(得分:0)
也许?
foreach($class as $v) echo($v->quantity);
答案 5 :(得分:0)
这是一个有趣的部分。使用变量来解决:
print_r($item->0);
但这有效:
$index = 0;
print_r($item->$index);