SOAP 関数をコールする

# SoapClient::__soapCall

(PHP 5, PHP 7)

SoapClient::__soapCall — SOAP 関数をコールする

### 説明

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

本メソッドは、SOAP コールを行う低レベル API 関数です。 通常、WSDL モードでは、SOAP 関数を SoapClient のメソッドとして簡単にコールすることができます。 本メソッドは、soapaction が不明な場合や、 uri がデフォルトと異なっていたり、 SOAP ヘッダを送受信したい場合に、非 WSDL モードを使用する際に有用です。

エラーの場合、SOAP 関数のコールは、PHP 例外または、例外が無効な場合に SoapFault オブジェクトが返されます。 この関数コールが失敗したかどうかを調べるには、 SoapFault 例外をキャッチするか、

### パラメータ

`function_name`

  コールしたい SOAP 関数の名前。

`arguments`

  関数に渡す引数の配列。これは、数値添字配列あるいは連想配列のどちらの形式でもかまいません。 たいていの SOAP サーバーは、パラメータ名を指定しないといけないことに注意しましょう。 そんな場合は、連想配列でないといけません。

`options`

  クライアントに渡すオプションの連想配列。

  location はリモートウェブサービスの URL です。

  uri は SOAP サービスのターゲット名前空間です。

  soapaction はコールしたいアクションです。

`input_headers`

  SOAP リクエストで送信するヘッダの配列。

`output_headers`

  指定すると、この配列に SOAP レスポンスのヘッダが書き込まれます。

### 返り値

SOAP 関数は、一つまたは複数の値を返す可能性があります。 SOAP 関数によって返される値が 1 つだけの場合、__soapCall の返す値は単純な値 (例えば、整数型、文字列など) になります。 複数の値が返される場合、__soapCall は出力パラメータの名前を連想配列として返します。

エラーの場合は、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'));
?>`

### 参考

- SoapClient::SoapClient() - SoapClient コンストラクタ
- SoapParam::SoapParam() - SoapParam コンストラクタ
- SoapVar::SoapVar() - SoapVar コンストラクタ
- SoapHeader::SoapHeader() - SoapHeader コンストラクタ
- SoapFault::SoapFault() - SoapFault コンストラクタ
- is_soap_fault() - SOAP コールが失敗したかどうかを調べる