# SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCall — Llama a una función SOAP

### Descripción

public SoapClient::__soapCall(
string `$function_name`,
array `$arguments`,
array `$options` = ?,
mixed `$input_headers` = ?,
array `&$output_headers` = ?
): mixed

Esta es una función de bajo nivel del API que se utiliza para hacer llamadas SOAP. Usualmente, en modo WSDL, las funciones soap pueden llamarse como métodos del objecto SoapClient. Este método es útil en módo no-WSDL cuando no se conoce la `soapaction`, la `uri` es diferente de la por defecto o cuando se envian y/o reciben encabezados SOAP.

Cuando se produce un error, llamar a una función SOAP puede causar a PHP lanzar una excepción o revolver el objecto SoapFault si las excepciones están desactivadas. Para comprobar si la llamada a la función falló capturar las excepciones SoapFault, comprobar el resultado con is_soap_fault().

### Parámetros

`function_name`

  Nombre de la función SOAP a llamar.

`arguments`

  Un array de argumentos a pasar a la función. Puede ser bien un array ordenado o asociativo. Tenga en cuenta que la mayoría de los servidores SOAP requieren que los nombres de parámetros sean proveídos, en cuyo caso ha de ser un array asociativo.

`options`

  Un array asociativo de opciones a pasar al cliente.

  La opción `location` es la URL del servicio Web remoto.

  La opción `uri` es el destino del espacio de nombres del servicio SOAP.

  La opción `soapaction` es la acción a llamar.

`input_headers`

  Un array de encabezados a ser enviados con la petición SOAP.

`output_headers`

  Si se proporciona, este array se llenará con los encabezados de la respuesta SOAP.

### Valores devueltos

Las funciones SOAP quizá devuelven uno, o múltiples valores. Si solo un valor es devuelto por la función SOAP, el valor retornado de `__soapCall` será un valor siemple (p.e.j. un integer, un string, etc). Si múltiples valores son retornados, `__soapCall` devolverá un array asociativo de los nombrados parámetros de salida.

En caso de error, si el objecto SoapClient fue construido con la opción `exceptions` establecida a `false`, devolverá un objeto SoapFault.

### Ejemplos

Ejemplo #1 Ejemplo de 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'));
?>`

### Ver también

- SoapClient::SoapClient()
- SoapParam::SoapParam()
- SoapVar::SoapVar()
- SoapHeader::SoapHeader()
- SoapFault::SoapFault()
- is_soap_fault() - Comprueba si una llamada SOAP ha fallado