Веб-служба PHP - тот же вызов: несколько записей = массив, 1 запись = один объект - как обойтись? - PullRequest
1 голос
/ 22 декабря 2009

Я использую веб-сервис на PHP. Если служба возвращает 2 или более записей, объект возвращается в виде массива. Однако, если я вызываю ту же службу, которая возвращает 1 запись, объект является , а не массивом. Это приводит к некоторой грязной логике, требующей наблюдения за обоими случаями, когда можно подумать, что PHP может быть достаточно умным, чтобы справиться с этим соответствующим образом и всегда возвращать массив из 1 элемента.

Так что мой вопрос - есть ли способ заставить возвращаемый объект всегда быть массивом? Какая-то собственность в звонилке или что-то?

EDIT

Я использую PHP soapclient библиотеку. Сервис является внутренним, который возвращает массив пользовательского класса.

1 Ответ

2 голосов
/ 22 декабря 2009

Вы можете попробовать следующее:

$client = new SoapClient("http://host/services/some.wsdl", 
array('feature' => SOAP_SINGLE_ELEMENT_ARRAYS));

Это должно заставить php вести себя так, как вы хотите.

Также вам может показаться интересной эта точечная статья .

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...