SoapClient::__soapCall

SOAP 関数をコールする

説明

public mixed SoapClient::__soapCall(
    string $name,
    array $args,
    arraynull $options = null,
    SoapHeaderarraynull $inputHeaders = null,
    array &$outputHeaders = null
)

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

エラーの場合に SOAP 関数を呼び出すと、PHP の例外が発生するか、例外が無効な場合には SoapFault オブジェクトが返されます。 この関数コールが失敗したかどうかを調べるには、 SoapFault 例外をキャッチするか、is_soap_fault の結果を調べてください。

パラメータ

name

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

args

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

options

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

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

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

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

inputHeaders

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

outputHeaders

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

戻り値

SOAP 関数は、一つまたは複数の値を返す可能性があります。 SOAP 関数から値をひとつだけ返す場合は、 返り値はスカラーになります。 複数の値を返す場合は、出力パラメータの名前がついた連想配列を返します。

エラーが発生した場合、 かつ SoapClientexceptionsfalse に設定した場合は、 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::__construct
  • SoapParam::__construct
  • SoapVar::__construct
  • SoapHeader::__construct
  • SoapFault::__construct
  • is_soap_fault