如何获取 Bar Foo 的价值?
Array
(
[channel] => SimpleXMLElement Object
(
[item] => Array
(
[0] => SimpleXMLElement Object
(
[title] => Bar Foo
)
)
)
)
echo $sxml['channel']->item[$i]->title;
它给出了结果,但是注意:试图获取非对象的属性
答案 0 :(得分:0)
如果您的对象结构如下:(object> array> object> array),那么您调用索引/键是错误的。请注意以下示例:
$x = new stdClass();
$x->channel = array();
$y = new stdClass();
$y->title = "Bar Foo";
$x->channel[0] = $y;
//echo $x['channel']->item[$i]->title;
//// Fatal error: Cannot use object of type stdClass as array
echo $x->channel[0]->title;
//// Success
但是如果它的结构与你描述的方式一致,那么你的回声线给我正确的输出(见下文),所以你可能在某个地方创建了一个数组或对象,它没有正确地映射到你在伪 - 中描述的内容上面的代码。
$x = array();
$x['channel'] = new stdClass();
$x['channel']->item = array();
$x['channel']->item[0] = new stdClass();
$x['channel']->item[0]->title = "Bar Foo";
echo $x['channel']->item[0]->title;
另外,如果您发现需要“美元符号”复杂结构(如涉及数组索引的动态变量名称),您可以使用这样的大括号:
$x = 2;
$y = array("x"=>$x);
print $($y['x']);