0

我正在使用 yii 构建一个肥皂网络服务。我遇到了一个奇怪的问题。

我创建参数,例如:

  $new=array('x' => 1,
             'y' => 2,
             'z' => 3);

然后我发送它,soap 服务器只接收数组中的第一个值。

肥皂服务器:

<?php
 class testController extends CController
{
    public function actions()
    {
        return array(
            'new'=>array(
                'class'=>'CWebServiceAction',
            ),
        );
    }

    /**
     * @param int $x
     * @param int $y
     * @param int $z
     * @return returnParams
     * @soap
     **/
    public function test($x,$y,$z)
    {
        Yii::log("$x : $y : $z", CLogger::LEVEL_ERROR);
        $returnParam = new returnParams();
        $returnParam->x = $x;
        $returnParam->y = $y;
        $returnParam->z = $z;
        return $returnParam;

    }

}
?>

returnParams 类如下

    <?php

  class returnParams{
        /**
        * @var int
        * @soap
        **/
  public $x;

        /**
        * @var int
        * @soap
        **/
  public $y;

        /**
        * @var int
        * @soap
        **/
  public $z;

 }

所以它非常基本,接收信息并立即发送回去。

这是回复

object(stdClass)#2 (9) {
  ["x"]=>
  int(1)
  ["y"]=>
  NULL
  ["z"]=>
  NULL

日志显示 $y 和 $z 为空。谁能看到我在这里做错了什么?

提前致谢。

4

1 回答 1

0

正如我所说,答案如下。

我正在创建一个数组并将其发送到肥皂服务器

    $new=array('x' => 1,
             'y' => 2,
             'z' => 3);

$response = $client->test($new);

我应该去的地方

$x = 1;
$y = 2;
$z = 3;
$response = $client->test($x,$y,$z);

感谢您的帮助。

于 2013-10-16T09:13:22.237 回答