(PHP 5 >= 5.0.1)
SoapClient::__soapCall — Ruft eine SOAP-Funktion auf
$function_name
, array $arguments
[, array $options
[, mixed $input_headers
[, array &$output_headers
]]] )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_name
Der Name der aufzurufenden SOAP-Funktion.
arguments
Ein Array aus Argumenten, die an die Funktion übergeben werden sollen. Dies kann entweder ein sortiertes oder ein assoziatives Array sein.
options
Ein 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_headers
Ein Array von mit dem SOAP-Request zu sendenden Headern.
output_headers
Sofern 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 trace=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'));
?>