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 例外をキャッチするか、is_soap_fault() の結果を調べてください。
パラメータ
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%22, 'uri' => "http://test-uri/%22));$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 コールが失敗したかどうかを調べる