PHP Australia Conference 2015

SoapParam::SoapParam

(PHP 5 >= 5.0.1)

SoapParam::SoapParamConstructor de SoapParam

Descripción

SoapParam::SoapParam ( mixed $data , string $name )

Construye un nuevo objecto SoapParam.

Parámetros

data

Los datos a pasar o devolver. Este parámetro puede ser pasado directamente como valor PHP, pero en este caso será nombrado como paramN y el servicio SOAP quizá no lo entiende.

name

Nombre del parámetro.

Ejemplos

Ejemplo #1 Ejemplo de SoapParam::SoapParam()

<?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"));
?>

Ver también

add a note add a note

User Contributed Notes 6 notes

up
2
lyroe_chan at hotmail dot com
8 months ago
If you want  to create a SOAP parameter like:

<a n="something">DATA</a>

You can try like this:

array('a' => array('_' => 'DATA', 'n'=>'something'));

This will generated xml like this:
<a n="something">DATA</a>
up
0
Alex
4 years ago
You probably want to try SoapVar instead of SoapParam if you want to specify attributes/namespace.
up
0
Alex
4 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.
up
0
barryking93 at gmail dot com
6 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.
up
-2
mjordan at sfu dot ca
10 months ago
You can also pass parameters (at least simple ones) to SOAP functions like this:

<?php
  $return
= $client->someFunction(array('paramName' => 'paramValue'));
?>
up
-2
Jeremy
7 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.
To Top