Могу ли я заставить SoapClient возвращать массивы в виде массивов?


Я извлекаю некоторые данные с помощью SoapClient. Я получаю эти результаты от одного из вызовов:

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

                )
        )
)

Однако в документах этого веб-интерфейса говорится, что payTransIncome является массивом. Мне кажется, SoapClient нашел массив из одного элемента и преобразовал его в один объект stdClass. И это затрудняет анализ, потому что иногда я думаю, что на самом деле он может возвращать более 1 элемента.

Конечно, я могу везде ставить чеки if (is_array()) но, может быть, есть простой, более элегантный способ?

Author: Tom, 2016-07-30

1 answers

Пожалуйста, попробуйте установить features на SOAP_SINGLE_ELEMENT_ARRAYS в настройках SoapClient:

$client = new SoapClient("some.wsdl", ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]);
 4
Author: Ismail RBOUH, 2016-07-30 13:23:12