我可以强制SoapClient将数组作为数组返回吗?

Tom*_*Tom 5 php soap soap-client asp.net-web-api

我正在使用SoapClient获取一些数据.我从其中一个电话得到了这个结果:

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

                )
        )
)
Run Code Online (Sandbox Code Playgroud)

但是,这个WebAPI的文档说payTransIncome是一个数组.在我看来,SoapClient找到了一个单元素数组并将其转换为单个stdClass对象.这使得解析变得更加困难,因为有时我认为它实际上可能会返回超过1个元素.

当然,我可以把所有地方检查,if (is_array())但也许有一个简单,更优雅的方式?

Ism*_*OUH 7

请尝试设置featuresSOAP_SINGLE_ELEMENT_ARRAYS您的SoapClient的选项:

$client = new SoapClient("some.wsdl", ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]);
Run Code Online (Sandbox Code Playgroud)