2015-08-19 21 views
1

希望你們能幫助我...在PHP還是新的,我很努力地顯示這個對象/數組集的一部分結果。 我從一個SOAP Web服務得到以下結果$results回:「在SOAP中試圖獲得非對象的屬性」PHP - 不知道爲什麼會出現這個錯誤

`object(stdClass)[9] 
     public 'Summary' => 
      object(stdClass)[2] 
       public 'ID' => string '1096408402' (length=10) 
       public 'IKey' => string '1440010962' (length=10) 
     public 'Address' => 
      object(stdClass)[4] 
    public 'Forename' => string 'TEST' (length=4) 
    public 'Surname' => string 'TESTER' (length=6) 
    public 'DOB' => string '0000-00-00' (length=10) 
    public 'Telephone' => string 'Unavailable' (length=11) 
    public 'Occupants' => 
    array (size=3) 
     0 => 
     object(stdClass)[12] 
      ... 
     1 => 
     object(stdClass)[13] 
      ... 
     2 => 
     object(stdClass)[14] 
      ... 
     3 => 
     object(stdClass)[15] 
      ... 

現在我試圖把數據插入到表格式。

我已成功使用標記爲Occupants的部分上的foreach創建表。我通過調用Occupants來做到這一點,如下所示: $occupants = ($results->Address->Occupants);並使用我的代碼提取數據並將其填充到我的表中(而不是針對此問題)。

我現在的問題是,當我嘗試和SummaryAddress它不工作做同樣的:我得到的錯誤「試圖讓非對象的屬性

我試圖$summary = $results->Summary$summary = $results['Summary']並且都不起作用。

那麼,什麼我想要做的就是運行 <?php $summary = ($results->Summary);foreach($summary as $person):?> ,然後我將其插入我的表如下: <td><?=$person->ID?></td>

所以任何想法,爲什麼我得到這個錯誤?我不認爲這是在foreach方面......?

回答

1

通常情況下,你應該得到的「摘要」對象:

$summary = $results->Summary 

在這種情況下$summary是2個屬性的對象:「ID」和「艾奇」。 如果在$summaryforeach之間進行迭代,則$person的值在第一次循環迭代中的值應爲$summary->ID,而在第二次循環迭代中的值應爲$summary->IKey$summary->ID$summary->IKey都是字符串,因此是非對象,所以我認爲這就是爲什麼你會得到這個錯誤。
我想你想這樣做呢:

$summary = $results->Summary; 
foreach ($summary as $value) 
    echo "<td>$value</td>"; 

這應該輸出(用於給定的例子):

<td>1096408402</td><td>1440010962</td> 

有關對象迭代的更多信息,我建議:http://php.net/manual/en/language.oop5.iterations.php

相關問題