2012-02-20 77 views
1

我想知道如何訪問stdObjects的stdObect數組。我有一個數組與print_r()打印時它看起來是這樣的:如何訪問stdClass的stdClass數組中的成員?

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

我怎樣才能訪問name字段?

$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 

回答

2

根據您的print_r的信息,只是嘗試

echo $persons->item[0]->name 
1

嘗試:

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

謝謝!來自三個不同人的三個同樣的答案完全同時:-)我會給那些聲譽最低的人(@Lake)提供「正確的答案」。希望沒關係:) – Rox 2012-02-20 11:31:22

+0

當然是。 – Rufinus 2012-02-20 12:01:57

1

陣列被包含在字段item內部。

echo $persons->item[0]->name; 
+0

謝謝!來自三個不同人的三個同樣的答案完全同時:-)我會給那些聲譽最低的人(@Lake)提供「正確的答案」。希望沒關係:) – Rox 2012-02-20 11:31:44