Я использую Zend_Soap_Client и встречая этот вопрос:Single элемент массива становится объект с Zend_Soap_Client
<parent>
<child><name>abc</name></child>
<child><name>def</name></child>
</parent>
Если есть больше чем один дочерний элемент, то Zend возвращение массива и я могу достигнуть как
$result->parent->child[0]->name
, но если есть только один дочерний узел, он возвращает объект:
$result->parent->child->name
Не могли бы вы сообщить мне, что случилось с моим подходом или как я могу его преодолеть?
Мой пример кода:
$client = new Zend_Soap_Client('url', array('wsdl'=>'url));
$result = $client->getResult();
Я использую Zend 1.9. Такая же проблема возникает с родным языком PHP SoapClient
Спасибо!
если (is_object ($ result-> родительский,> ребенок)) .... возможно с, что вы можете сделать что-то и привести результат в массив – Hackerman
is_array) должно быть (поскольку is_object() будет истинным в обоих случаях. Массив также является объектом. Прямо сейчас я использую это, но, поскольку есть несколько таких элементов, я не лучший путь. Благодаря! –
У вас есть два случая: 1) $ result-> parent-> child - это массив, 2) - это объект ... если если не массив, то используйте aux var и введите $ result-> parent-> child в массив ... я думаю, что это хороший aproach – Hackerman