1

我已经用 php 设置了一个 SOAP 服务器。

问题在于,根据 WSDL,调用服务器方法的客户端应该传递一组参数(超过 50 个)。我是从 SOAP UI 了解这一点的。

但是我如何在我的服务器方法中处理所有这些参数?我是否应该继续为我的服务器方法声明每个参数,如下所示?

public function addMessage($a, $b, $c, $d, .................) {

}

但我希望必须有一个更简单的方法来解决这个问题。最好,我想接收我的服务器方法中的所有参数,作为一个数组或对象。

更新:我正在使用 Zend_Soap_Server。我是否需要定义任何复杂类型来处理输入参数?如我所见,WSDL 定义了一些复杂类型。

4

2 回答 2

2

尝试使用http://www.php.net/manual/en/function.func-get-args.php

public function addMessage() {
    $args = func_get_args();

    foreach($args as $argument)
    {
         # processing 
         $this->do_process($argument);
    }
    var_dump($args);
}

称呼

$this->addMessage('a', 'b', 'c', 'd', ....);

并且函数将返回

array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd' ....);
于 2013-12-26T11:02:27.510 回答
0

好吧,我终于可以在我的方法中将参数作为对象接收了。这些对象已经在 XSD 文件中定义为复杂类型。

于 2013-12-30T12:09:52.520 回答