今天用PHP调用WebService远程函数a,代码如下
<?php
$wsdl="wsdl地址";//函数参数 $param=array('paramName1'=>$param1,'paramName2'=>$param2,'paramName3'=>$param3,...);//函数参数 $webserv = new SoapClient($wsdl);//实例化连接 ,设置WSDL $obj=$webserv->__soapCall("a",array($param));//调用指定函数,并传递函数参数 结果为对象 echo $obj->$aResult;//输出结果 ?>
打算封装成函数方便以后使用,突然发现,结果对象中的结果变量名是根据函数名有关的
调用远程function函数结果对象中结果变量是$functionResult。
查阅资料发现
<?php $value=1; $name='value'; echo $$name; ?>
结果为1。
遂改代码如下
<?php function webServFun($wsdl,$function_name,$param_ary){ $webserv = new SoapClient($wsdl);//实例化连接 ,设置WSDL $obj=$webserv->__soapCall($function_name,array($param_ary));//调用指定函数,并传递参数,结果为对象 $resultname=$function_name.'Result';//生成结果的变量名 return $obj->$resultname;//返回结果 } ?>