我正在使用yii来构建一个soap Web服务。我遇到了一个奇怪的问题。
我创建参数,例如:
$new=array('x' => 1,
'y' => 2,
'z' => 3);
然后我发送它,SOAP 服务器只接收数组中的第一个值。
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;
}
}
?>
返回参数类如下
<?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为空。谁能看到我在这里做错了什么?
提前谢谢。
正如我所说,答案如下。
我正在创建一个数组并将其发送到 SOAP 服务器
$new=array('x' => 1,
'y' => 2,
'z' => 3);
$response = $client->test($new);
我应该在哪里做
$x = 1;
$y = 2;
$z = 3;
$response = $client->test($x,$y,$z);
感谢您的帮助。