我一直致力于从客户端页面自动获取信息的项目。它基本上是一个函数,它调用一堆其他函数并将信息排列在stdClass对象中。我以为我很聪明,并且可以搜索"可搜索"但我遇到了一些小问题。
以下是输出示例:
where
如您所见,第一个对象的索引(或者是键)是stdClass Object
(
[ud] => stdClass Object
(
[name] => stdClass Object
(
[svenska] => Uddev
[engelska] => uddev
)
[biografer] => stdClass Object
(
[0] => stdClass Object
(
[namn] => Drottning. Uddev
[id] => 196
[salonger] => stdClass Object
(
[0] => stdClass Object
(
[salong] => Vag 1
[platser] => 100 platser
[ljud] => SOU
)
[1] => stdClass Object
(
[salong] => Vag 2
[platser] => 100 platser
[ljud] => SOU
)
[2] => stdClass Object
(
[salong] => Vag 3
[platser] => 60 platser
[ljud] => SOU
)
[3] => stdClass Object
(
[salong] => Vag 4
[platser] => 50 platser
[ljud] => SOU
)
[4] => stdClass Object
(
[salong] => Vag 5
[platser] => 50 platser
[ljud] => DOLBY
)
[5] => stdClass Object
(
[salong] => Vag 6
[platser] => 34 platser
[ljud] =>
)
)
)
)
)
[ma] => stdClass Object
(
...... And the following object
。
我以为我可以这样做:
ud
这将生成$test = $crawler->fetchAllArray();
foreach ($test as $key => $value) {
if($key == 'ud'){
foreach ($value->{ud} as $child => $ud) { # line 295
echo "id: $key" . ", name: $ud->name->svenska";
}
}
}
,但我收到以下错误:
注意:使用未定义的常量ud - 假设' ud'在test.php上 第295行
注意:未定义的属性:第295行的test.php中的stdClass :: $ ud
警告:在test.php中为foreach()提供的参数无效 295
如何正确回显特定对象的信息?
答案 0 :(得分:1)
你为什么这么做?
$value->{ud}
您应该以下列方式访问嵌套对象:
$value
或甚至
$test->ud
直接
第二个foreach是什么?不是特别清楚你想要完成什么,但你可以这样做:
foreach ($test as $key => $value) {
if($key == 'ud'){
echo "id: $key" . ", name: ". $value->name->svenska;
}
}
}