Как получить доступ к членам в массиве stdClass stdClasses? - PullRequest
1 голос
/ 20 февраля 2012

Мне интересно, как я могу получить доступ к массиву stdObect stdObjects. У меня есть массив, который выглядит примерно так при печати с print_r():

stdClass Object ([item] => Array(
    [0] => stdClass Object([id] => 0 [name] => Peter)
    [1] => stdClass Object([id] => 1 [name] => Jack)))

Как я могу получить доступ к полю имени? Если бы это был не массив, я мог бы получить атрибуты, вызвав поле, например:

$client = new SoapClient("http://url.to.my.wsdl", array("trace" => 0));
echo $client->GetPerson()->name;

Но при использовании массивов это не работает:

$client = new SoapClient("http://url.to.my.wsdl", array("trace" => 0));
$persons = $client->GetPersons();
echo $persons[0]->name;

Это просто дает мне ошибку:

Fatal error: Cannot use object of type stdClass as array

Ответы [ 3 ]

2 голосов
/ 20 февраля 2012

Согласно вашей информации print_r, просто попробуйте

echo $persons->item[0]->name
1 голос
/ 20 февраля 2012

Массив содержится внутри поля item.

echo $persons->item[0]->name;
1 голос
/ 20 февраля 2012

попробуйте это:

$persons->item[0]->name;
...