(PHP 5 >= 5.0.1)
SoapClient::__soapCall — Ruft eine SOAP-Funktion auf
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.
Der Name der aufzurufenden SOAP-Funktion.
Ein Array aus Argumenten, die an die Funktion übergeben werden sollen. Dies kann entweder ein sortiertes oder ein assoziatives Array sein.
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.
Ein Array von mit dem SOAP-Request zu sendenden Headern.
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'));
?>