(PHP 5 >= 5.0.1)
SoapClient::__soapCall — SOAP 関数をコールする
本メソッドは、SOAP コールを行う低レベル API 関数です。 通常、WSDL モードでは、SOAP 関数を SoapClient のメソッドとして簡単にコールすることができます。 本メソッドは、soapaction が不明な場合や、 uri がデフォルトと異なっていたり、 SOAP ヘッダを送受信したい場合に、非 WSDL モードを使用する際に有用です。
エラーの場合、SOAP 関数のコールは、PHP 例外または、例外が無効な場合に SoapFault オブジェクトが返されます。 この関数コールが失敗したかどうかを調べるには、 SoapFault 例外をキャッチするか、
コールしたい SOAP 関数の名前。
関数に渡す引数の配列。これは、数値添字配列あるいは連想配列のどちらの形式でもかまいません。
クライアントに渡すオプションの連想配列。
location はリモートウェブサービスの URL です。
uri は SOAP サービスのターゲット名前空間です。
soapaction はコールしたいアクションです。
SOAP リクエストで送信するヘッダの配列。
指定すると、この配列に SOAP レスポンスのヘッダが書き込まれます。
SOAP 関数は、一つまたは複数の値を返す可能性があります。 SOAP 関数によって返される値が 1 つだけの場合、__soapCall の返す値は単純な値 (例えば、整数型、文字列など) になります。 複数の値が返される場合、__soapCall は出力パラメータの名前を連想配列として返します。
エラーの場合は、SoapClient オブジェクトの作成時に trace オプションが 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'));
?>