2009-12-22 41 views
1

我正在使用PHP中的Web服務。如果服務返回2個或更多記錄,則該對象作爲數組返回。但是,如果我調用返回1記錄的相同服務,則該對象是而不是數組。這使得一些凌亂的邏輯必須關注兩種情況,當人們會認爲PHP可以足夠聰明來處理這種情況並且總是返回1個元素的數組。PHP Web服務 - 相同的調用:多個記錄=數組,1記錄=單個對象 - 如何解決?

所以我的問題是 - 有沒有辦法強制返回對象始終是一個數組?通話中的一些屬性或東西?

編輯

我使用PHP的SoapClient的庫。該服務是一個內部的服務,它返回一個自定義類的數組。

+1

請客戶端庫,您使用的這些,服務是你消費,有什麼協議,它採用了等... – knoopx 2009-12-22 13:20:06

回答

2

,你可以嘗試以下方法:

$client = new SoapClient("http://host/services/some.wsdl", 
array('feature' => SOAP_SINGLE_ELEMENT_ARRAYS)); 

這應該使PHP的行爲您想要的方式。您也可能會發現this dotvoid article interesting

HTH

+0

不幸的是這對我的結果沒有任何影響告訴我們。快速谷歌顯示了一些其他人有同樣的問題。也許它確實是一個PHP錯誤? – bugfixr 2009-12-22 13:31:10

+0

請發佈您的客戶端代碼和相關的WSDL代碼片段(如果可用) – KB22 2009-12-22 13:33:55