Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中为SoapClient请求向数组添加属性_Php_Arrays_Soap_Soap Client - Fatal编程技术网

如何在PHP中为SoapClient请求向数组添加属性

如何在PHP中为SoapClient请求向数组添加属性,php,arrays,soap,soap-client,Php,Arrays,Soap,Soap Client,嗨,我对使用Soap很陌生,但是一切都很顺利,我已经使用PHP Soap客户端编写了一个脚本,除了一个有属性的标记之外,一切都很好,我可以在调用服务之前找到一种方法,在$params列表中传递它 我正在这样构建参数:-(例外) 但是,我需要XML是:- <Goods Type="EGoods"> <Description>Test</Description> <Quantity>

嗨,我对使用Soap很陌生,但是一切都很顺利,我已经使用PHP Soap客户端编写了一个脚本,除了一个有属性的标记之外,一切都很好,我可以在调用服务之前找到一种方法,在$params列表中传递它

我正在这样构建参数:-(例外)

但是,我需要XML是:-

<Goods Type="EGoods">              
           <Description>Test</Description>
           <Quantity>1</Quantity>
</Goods>

试验
1.
注意商品标签上的type=“EGoods”,如何在php中修改我的数组来说明这个属性

当我按原样提交soap请求时,我得到一个错误,即商品不能为null或空


感谢您的帮助。

在仔细阅读手册之后,我找到了一个有效的解决方案:)

产生

<Goods Type="EGoods">              
       <Description>Test</Description>
       <Quantity>1</Quantity>
</Goods>

试验
1.
这里找到了解决方案

我必须稍微修改它才能工作,如果您将我的数组结构与原始数组结构进行比较,您就会看到我必须进行哪些更改


Paul

你就不能这样做:
'Goods Type=“EGoods”=>数组(
@Daan不,我在尝试这种方法时遇到了找不到的错误,并且输出的xml中缺少所有的商品
'Goods' => array('_' => '', 'Type'=>'EGoods',
        'Description' => '$Description', 'Quantity' => '$qty');
<Goods Type="EGoods">              
       <Description>Test</Description>
       <Quantity>1</Quantity>
</Goods>
$var = new MessageHeaderSoapStruct;
$var->From    = 'foo';
$var->To      = 'bar';
$var->version = 1;
$namespace = 'http://xxx'; # Namespace of MessageHeader WSDL element
$MessageHeader = new SoapVar($var, SOAP_ENC_OBJECT, 'MessageHeader', $namespace);