(PHP 5, PHP 7)
SoapClient::__soapCall — Ruft eine SOAP-Funktion auf
$function_name
, array $arguments
[, array $options
[, mixed $input_headers
[, array &$output_headers
]]] ) : mixed
Es handelt sich um eine low-level-API-Funktion, um einen SOAP-Aufruf
durchzuführen. Normalerweise können im WSDL-Modus SOAP-Funktionen als
Methoden des SoapClient-Objekts aufgerufen werden.
Diese Methode ist im nicht-WSDL-Modus nützlich, wenn die
soapaction unbekannt ist, die uri
vom Standard abweicht oder wenn SOAP-Header gesendet und/oder empfangen
werden.
Im Fehlerfall kann der Aufruf einer SOAP-Funktion PHP veranlassen, eine Exception zu werfen oder ein SoapFault-Objekt zurückzugeben, wenn Exceptions deaktiviert wurden. Um zu prüfen, ob der Funktionsaufruf eine SoapFault-Exception nicht abgefangen hat, sollte die Rückgabe mit is_soap_fault() überprüft werden.
function_nameDer Name der aufzurufenden SOAP-Funktion.
argumentsEin Array aus Argumenten, die an die Funktion übergeben werden sollen. Dies kann entweder ein sortiertes oder ein assoziatives Array sein. Es ist zu beachten, dass die meisten SOAP Server die Angabe von Parameternamen erfordern, so dass in diesen Fällen ein assoziatives Array verwendet werden muss.
optionsEin assoziatives Array von Optionen, die an den Client übergeben werden sollen.
Die Option location enthält den URL des angesprochenen
Webservices.
Die Option uri enthält den Zielnamensraum des
SOAP-Services.
Die Option soapaction ist die aufzurufende Aktion.
input_headersEin Array von mit dem SOAP-Request zu sendenden Headern.
output_headersSofern vorhanden, wird dieses Array mit den Headern des SOAP-Response gefüllt.
SOAP-Funktionen können einen oder mehrere Werte zurückgeben. Wenn nur ein
Wert von der SOAP-Funktion zurückgegeben wurde, entspricht der Rückgabewert
von __soapCall einem primitiven Datentyp (z.B. integer,
string etc). Wenn mehrere Werte zurückgegeben werden, gibt
__soapCall ein assoziatives Array mit benannten
Parametern zurück.
Wenn das SoapClient-Objekt mit exceptions=FALSE erstellt
wurde, wird bei einem Fehler ein SoapFault-Objekt zurückgegeben.
Beispiel #1 SoapClient::__soapCall()-Beispiel
<?php
$client = new SoapClient("ein.wsdl");
$client->EineFunktion($a, $b, $c);
$client->__soapCall("EineFunktion", array($a, $b, $c));
$client->__soapCall("EineFunktion", array($a, $b, $c), NULL,
new SoapHeader(), $output_headers);
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->EineFunktion($a, $b, $c);
$client->__soapCall("EineFunktion", array($a, $b, $c));
$client->__soapCall("EineFunktion", array($a, $b, $c),
array('soapaction' => 'some_action',
'uri' => 'some_uri'));
?>