读书人

用 nuSOAP解决传递对象数组的有关问题

发布时间: 2012-09-22 21:54:54 作者: rapoo

用 nuSOAP解决传递对象数组的问题
object[2]"

?

object并不是我们想要的。于是上网找相关资料发现了如下方法:

$soap->register('hello', array(), array('return'=>'tns:UserInfoArray') );

?

这里要自定义添加一个tns:UserInfoArray的数组类型,方法如下:

$soap->wsdl->addComplexType(
????'UserInfoArray',
????'complexType',
????'array',
????'',
????'SOAP-ENC:Array',
????array(),
????array(
????????array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:UserInfo[]')
????),
????'tns:UserInfo'
);

?

此时代码部分已完成,但是调用时nuSOAP缺报错了,是一个PHP错误:

Catchable fatal error: Object of class UserInfo could not be converted to string in ...\nusoap\nusoap.php on line 6002

?

于是找到nusoap.php的6002行看一下为何UserInfo向string转换:

$this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]");

代码没有多看,不过很明显只是个debug的代码,没什么实际作用。于是直接注释掉继续调用,OK!通过了,一切顺利。

读书人网 >XML SOAP

热点推荐