php soap扩展做webservice的时候 如何传入数组或者对象参数?

最近需要些一些接口和JAVA通信 , 考虑后想用soap来做webservice ,捣鼓半天 用zend studio生成wsdl文件后 成功做了一个demo .下面请看问题:
加入类文件如下:(类文件就是给soapserverObj->setClass()调用的文件)
class service {
public function smit(array $params){
return $params;

}

}

我用的是zend studio 10.1 生成wsdl中设置方法 参数类型的时候找不到array类型 我只能用string 代替

同样 返回值也是。
问题:难道我在soapclient 中调用方法时 只能用string的参数吗 我看过很多例子 都能引入数组
我有想过用json字串引入 但是感觉有点别扭 求高手解答!!!!
最新回答
纠结小青春丶

2024-11-06 08:52:36

SOAP可以传递数组和对象,比较复杂不便详述。你可以在网上查阅SOAP的规范。SOAP的对象需要定义在wsdl里。这就要求java调用方也定义这些对象。

使用SOAP要注意一个问题:SOAP没有统一的标准,不同语言对SOAP的实现有微小差别,有可能导致不兼容。

编写SOAP的wsdl是件麻烦而且痛苦的事。你可以试试使用第三方库。Yii框架就提供一个强大的SOAP解决方案。你可以通过注释和类,自动生成wsdl。个人不推荐在PHP中使用SOAP,因为PHP不像其他语言类似JAVA、.NET,提供强大的SOAP支持。

你可以考虑轻量级API,也可以考虑XML-RPC。并不比SOAP差,而且很灵活。

望采纳,谢谢!
追问
我用的thinkphp框架 不知道有没有soap支持
追答
我帮你查了一下,有个叫nusoap的类库可以使用。你可以在网上了解一下。

望采纳,谢谢支持!
追问
我已经用php自带的扩展了  能加你的联系方式吗 ?
追答
PHP自带的扩展不能生成wsdl。