0

我正在使用 PHP SOAPSERVER 类。

作为响应,我发送关联 php 数组:

function getItems()    
{    
   ...
   $items[] = Array("itemID" =>$itemID,"itemName"=>$itemName);
   return $items;
 }

SOAP 返回是这样的:

...
<Items>
<item type="Map">
    <item>
        <key type="string">
            itemID
        </key>
        <value type="string">
            17558
        </value>
    </item>
    <item>
        <key type="string">
            itemName
        </key>
        <value type="string">
            I-17558
        </value>
    </item>
</item>
</Items>
...

这样的回报很难为人类分析(给定更大的数组)。首选形式是这样的:

    ...
<Items>
    <item>
        <itemID>17558</itemID>
        <itemName>I-17558</itemName>
    </item>
    <item>
        <itemID>17559</itemID>
        <itemName>I-17559</itemName>
    </item>
</Items>
    ...

这样的 SOAP 返回是否可能(不更改返回类型 - 数组)?如何?

我刚刚开始使用 SOAP,大多数教程都展示了如何返回简单类型,如字符串。

4

1 回答 1

5

发送一个 stdclass 对象,而不是发送一个关联数组。

例子 :

$return = new stdclass;
$return->ItemID = 1;
$return->ItemName = 'foo';

return $return;

那么 SOAP 结果将如您所愿!

于 2013-02-14T09:52:49.443 回答