0

我在使用 php5 在我的肥皂请求中设置元素值时遇到问题。
我正在使用 php 的原生 SoapClient。

我已经使用类映射将请求对象从 web 服务映射到代理类。
请求对象应该像这样传输到 web 服务:

<soapElement attributename="attribValue">elemValue</soapElement>

我的代理类看起来像这样:

class someRequest {

    public $attributename;
    public $value; //wild guess

}

我初始化类并像这样设置变量:

$someReq = new someRequest();
$someReq->attributename = 'attribValue';
$someReq->value = 'elemValue';

当我用我的请求调用网络服务时:

$client->someOperation($someReq);

我的请求将如下所示:

<soapElement attributename="attribValue"/>

如您所见,soapElement 值为空。
如何使用代理类设置soapElement 的值?

4

1 回答 1

0

如果其他人对此感到疑惑,我现在找到了答案:

代表元素值的变量名需要命名为$_。

以下代码将起作用:

class someRequest {

    public $attributename;
    public $_; 

}

$someReq = new someRequest();
$someReq->attributename = 'attribValue';
$someReq->_ = 'elemValue';

然后请求将如下所示:

<soapElement attributename="attribValue">elemValue</soapElement>
于 2012-07-12T07:10:05.563 回答