php soapserver返回更好的可读关联数组

use*_*822 0 php soap soapserver

我正在使用PHP SOAPSERVER类.

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

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

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>
...
Run Code Online (Sandbox Code Playgroud)

这种回归很难分析人类(给定更大的数组).首选形式如下:

    ...
<Items>
    <item>
        <itemID>17558</itemID>
        <itemName>I-17558</itemName>
    </item>
    <item>
        <itemID>17559</itemID>
        <itemName>I-17559</itemName>
    </item>
</Items>
    ...
Run Code Online (Sandbox Code Playgroud)

这样的SOAP返回是否可行(不改变返回类型 - 数组)?怎么样?

我刚刚开始使用SOAP,大多数教程都展示了如何返回像string这样的简单类型.

小智 5

不发送关联数组,而是发送stdclass对象.

示例:

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

return $return;
Run Code Online (Sandbox Code Playgroud)

然后SOAP结果将是您想要的方式!