Zastanawiam się, jak mogę uzyskać dostęp do tablicy stdObect stdObjects. Mam tablicę, która wygląda mniej więcej tak podczas drukowania za pomocą print_r():

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

Jak mogę uzyskać dostęp do pola nazwy? Gdyby to nie była tablica, mógłbym uzyskać atrybuty, wywołując pole, na przykład:

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

Ale w przypadku korzystania z tablic to nie działa:

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

To tylko daje mi błąd:

Fatal error: Cannot use object of type stdClass as array
1
Rox 20 luty 2012, 15:08

3 odpowiedzi

Najlepsza odpowiedź

Zgodnie z informacjami o print_r, po prostu spróbuj

echo $persons->item[0]->name
2
Lake 20 luty 2012, 15:13

Spróbuj tego:

$persons->item[0]->name;
1
Rufinus 20 luty 2012, 15:13

Tablica jest zawarta w polu item.

echo $persons->item[0]->name;
1
knittl 20 luty 2012, 15:13