You probably want to try SoapVar instead of SoapParam if you want to specify attributes/namespace.
SoapParam::SoapParam
(PHP 5 >= 5.0.1)
SoapParam::SoapParam — سازنده SoapParam
Parameters
- data
-
داده ارسال یا بازگشت.این پارامتر مستقیما به عنوان مقدار PHP ارسال میشود اما در این حالت به نام paramN است و خدمت SOAP ممکن است آن را نفهمد.
- name
-
نام پارامتر.
Examples
Example #1 SoapParam::SoapParam() example
<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
new SoapParam($b, "b"),
new SoapParam($c, "c"));
?>
Alex ¶
3 years ago
Alex ¶
3 years ago
Make sure to always cast your parameters prior to creating a SoapParam. Otherwise you will wind up with an incorrect xsi:type and possibly no value.
$value = 0;
$param0 = new SoapParam(
$value, $param0_name);
will give you:
<$param0_name xsi:type="xsd:null"></$param0_name>
while:
$value = 0;
$param0 = new SoapParam(
(int)$value, $param0_name);
<$param0_name xsi:type="xsd:int">0</$param0_name>
which is probably what you want.
barryking93 at gmail dot com ¶
5 years ago
You have to use SoapVar instead of SoapParam if you want it to do something fancy like using different opening and closing tags. I ran into this using the SOAP API for Zimbra.
Jeremy ¶
5 years ago
Is there anyway to create a SOAP parameter like:
<a n="something">DATA</a>
If I try to form a param using the following code the resulting request is:
Code: SoapParam("DATA", "a n=\"something\"");
Result: <a n="something">DATA</a n="something">
This is giving me an error from the SOAP server because its expecting a properly formed closing tag without the encapsulated attribute.
