SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCallВызывает SOAP-функцию

Описание

publicSoapClient::__soapCall(
    string$name,
    array$args,
    ?array$options = null,
    SoapHeader|array|null$inputHeaders = null,
    array&$outputHeaders = null
): mixed

Это низкоуровневая функция 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'));
?>

Смотрите также

To Top