(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_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. 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.
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 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'));
?>