gpt4 book ai didi

php - SoapClient : how to pass multiple elements with same name?

转载 作者:可可西里 更新时间:2023-11-01 12:26:48 26 4
gpt4 key购买 nike

我有以下代码:

$telnums = array(10, 20, 30);
$obj = new StdClass();
$obj->telnums = new StdClass();
foreach ($telnums as $telnum) {
$obj->telnums = $telnum;
}

call_user_func(array($this->client, 'createDomain'), new SoapVar($obj, SOAP_ENC_OBJECT));

$this->client 是 SoapClient 类的一个实例。

它生成以下请求:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="...">
<SOAP-ENV:Body>
<ns1:createDomain>
<createDomainRequest>
<telnums>30</telnums>
</createDomainRequest>
</ns1:createDomain>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

但是我需要

            <createDomainRequest>
<telnums>10</telnums>
<telnums>20</telnums>
<telnums>30</telnums>
</createDomainRequest>

我怎样才能做到这一点?

P.S.: PHP 5.2.6-3ubuntu4.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Jan 6 2010 22:25:33)

提前致谢!

最佳答案

我最近遇到了类似的情况,我发现这种模式通常可以解决问题。

$obj = new StdClass();
foreach ($telnums as $telnum) {
$obj->telnums[] = $telnum;
}

之所以可行,是因为它紧密模拟了您的 WSDL 规定的相同数据结构

关于php - SoapClient : how to pass multiple elements with same name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com