(PHP 5, PHP 7, PHP 8)
SoapClient::__soapCall — Вызывает SOAP-функцию
$name,$args,$options = null,$inputHeaders = null,&$outputHeaders = null
Это низкоуровневая функция API, которая позволяет сделать SOAP-вызов.
Обычно в режиме WSDL функции SOAP вызываются как методы объекта
SoapClient. Этот метод полезен в режиме, отличном от WSDL, когда
soapaction неизвестен, uri отличается от
URI по умолчанию или при отправке и/или получении SOAP-заголовков.
В случае возникновения ошибки вызов SOAP-функции может привести к исключению или к возврату объекта SoapFault, если исключения отключены. Чтобы проверить, что вызов функции завершился неудачей, поймав исключение SoapFault, проверьте результат с помощью is_soap_fault().
nameИмя вызываемой SOAP-функции.
argsМассив аргументов, передаваемых в функцию. Это может быть упорядоченный или ассоциативный массив. Обратите внимание, что большинство SOAP-серверов требуют предоставлять имена параметров, и в этом случае это должен быть ассоциативный массив.
optionsАссоциативный массив настроек, передаваемых клиенту.
Настройка location - URL удалённой веб-службы.
Настройка uri - целевое пространство имён SOAP-службы.
Настройка soapaction - действие для вызова.
inputHeadersМассив заголовков, отправляемых вместе с SOAP-запросом.
outputHeadersЕсли указан, то этот массив будет заполнен заголовками из SOAP-ответа.
Функции SOAP могут возвращать одно или несколько значений. Если функция SOAP возвращает только одно значение, то возвращаемое значение будет скаляром. Если возвращается несколько значений, то вместо них возвращается ассоциативный массив именованных выходных параметров.
В случае возникновения ошибки, если объект SoapClient был объявлен
с опцией exceptions со значением false,
будет возвращён объект SoapFault.
Пример #1 Пример использования SoapClient::__soapCall()
<?php
$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
new SoapHeader(), $output_headers);
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
array('soapaction' => 'some_action',
'uri' => 'some_uri'));
?>