2016-07-30 4 views
1

Ich erhalte einige Daten mit SoapClient. Ich erhalte diese resuls von einem der Anrufe:Kann ich SoapClient zwingen, Arrays als Arrays zurückzugeben?

stdClass Object 
(
    [payTransIncome] => stdClass Object 
     (
      [item] => stdClass Object 
       (
        [payTransId] => 141281 
        [payTransItId] => 630260 
        [payTransBuyerId] => 1311 

       ) 
     ) 
) 

jedoch die Dokumentation dieses WebAPI sagt payTransIncome ein Array ist. Scheint mir, dass SoapClient ein Ein-Element-Array gefunden und in ein einzelnes stdClass-Objekt konvertiert hat. Und das macht es schwieriger zu parsen, weil ich manchmal denke, dass es mehr als 1 Element zurückgeben könnte.

Sicher kann ich überall Schecks setzen if (is_array()) aber vielleicht gibt es einen einfachen, eleganter Weg?

+1

Try 'features' zu' SOAP_SINGLE_ELEMENT_ARRAYS' in Ihren Soapclient-Optionen. –

+0

@IsmailRBOUH Perfekt, danke! Wenn du das als Antwort posten willst, markiere ich es als Lösung. Vielen Dank! – Tom

+1

Gern geschehen. Antwort hinzugefügt, damit Leute, die das gleiche Problem in der Zukunft haben, es leicht finden können! –

Antwort

3

Bitte versuchen Sie es features-SOAP_SINGLE_ELEMENT_ARRAYS in Ihren Soapclient Optionen einzustellen:

$client = new SoapClient("some.wsdl", ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]); 
Verwandte Themen