Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
当wsdl中的元素类型为int时,是否有方法使用PHP SOAP客户端传递null?_Php_Soap - Fatal编程技术网

当wsdl中的元素类型为int时,是否有方法使用PHP SOAP客户端传递null?

当wsdl中的元素类型为int时,是否有方法使用PHP SOAP客户端传递null?,php,soap,Php,Soap,我正在使用PHP SOAP客户端提交一个包含wsdl中定义的ID元素的对象,如下所示: <s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int"/> <ns1:ID>0</ns1:ID> 'ID' => array (size=2) '_' => '' 'xsi:nil' => string 'true' 这将从SOAP客户端生成xml,如下所示: <s:

我正在使用PHP SOAP客户端提交一个包含wsdl中定义的ID元素的对象,如下所示:

<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int"/>
<ns1:ID>0</ns1:ID>
'ID' => 
array (size=2)
  '_' => ''
  'xsi:nil' => string 'true'
这将从SOAP客户端生成xml,如下所示:

<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int"/>
<ns1:ID>0</ns1:ID>
'ID' => 
array (size=2)
  '_' => ''
  'xsi:nil' => string 'true'
问题: 是否有任何方法可以使用PHP SOAP客户端为int元素提交空值

更新 根据“Nate from Kalamazoo”的建议,我将$myarray[“ID”]=null;致:

$myarray["ID"] = array('_' => '','xsi:nil' => "true");
这导致数组元素“ID”是另一个数组,如下所示:

<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int"/>
<ns1:ID>0</ns1:ID>
'ID' => 
array (size=2)
  '_' => ''
  'xsi:nil' => string 'true'
现在xml看起来像:

<ns1:ID>1</ns1:ID> //where did the 1 come from?

传递给SOAP客户端的数组与用作XML元素名的元素名相关联,因此我猜传递数组的ID元素中的数组以某种方式返回1。但不管怎样,“xsi:ni;”不会出现在XML中的任何位置。

能否将
xsi:nil=“true”
属性添加到ID元素中?差不多

$myarray["ID"] = array(
            '_' => '',
            'xsi:nil' => "true");

来源:

谢谢,但是我得到了一个奇怪的结果,在XML中ID的值现在是1。我更详细地更新了这个问题。我是否理解PHP SOAP客户机如何解释数组?对于可能有类似情况的其他人,我明白了为什么我一直在xml中得到0。我有一个字符串替换,它看到空值并将其替换为“”。这是一行代码。我删除了它并成功地获得了所需的空值$ota=str_replace(“,”,$myarray)。