我正在使用WSDL文件查询SOAP Web服务,有时您会获得一个或多个同名元素。在前一种情况下,PHP会将其转换为单个对象,后者将成为一个对象数组。
是不是有一种理智的方法来始终在数组中包含这些条目?目前,我正在检查对象的属性是否已设置,如果是,则将整个对象放入新数组中。然后我总是可以循环遍历它们,而不必担心这一点。
我觉得我在这里遗漏了一些东西,因为这似乎是一个常见的问题。我是否真的必须自己编写一些抽象来处理这个问题?我的意思是,它在XSD中,所以PHP应该知道可以有多个相同名称的元素并做正确的事情,对吗?
答案 0 :(得分:0)
Turns out SoapClient
类名为SOAP_SINGLE_ELEMENT_ARRAYS
的选项会将每个元素转换为数组。不完全是我想要的,但可能是我自己不能做到的最好的,对吧?像这样使用:
$client = new SoapClient($wsdl,
array('features' => SOAP_SINGLE_ELEMENT_ARRAYS)
);
P.S。:SO的现场搜索很糟糕。我在搜索并询问后在Google上找到了这个。