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

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

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

)
)
)

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

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

3

Решение

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

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

Другие решения

Других решений пока нет …