<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.soapclient.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'soapclient.construct.php',
    1 => 'SoapClient::__construct',
    2 => 'SoapClient のコンストラクタ',
  ),
  'up' => 
  array (
    0 => 'class.soapclient.php',
    1 => 'SoapClient',
  ),
  'prev' => 
  array (
    0 => 'soapclient.call.php',
    1 => 'SoapClient::__call',
  ),
  'next' => 
  array (
    0 => 'soapclient.dorequest.php',
    1 => 'SoapClient::__doRequest',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/soap/soapclient/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="soapclient.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">SoapClient::__construct</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">SoapClient::__construct</span> &mdash; <span class="dc-title">SoapClient のコンストラクタ</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-soapclient.construct-description">
  <h3 class="title">説明</h3>
  <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>SoapClient::__construct</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$wsdl</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code><span class="initializer"> = []</span></span>)</div>

  <p class="para rdfs-comment">
   SOAP サービスに接続するための
   <span class="classname"><a href="class.soapclient.php" class="classname">SoapClient</a></span>
   オブジェクトを生成します。
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-soapclient.construct-parameters">
  <h3 class="title">パラメータ</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">wsdl</code></dt>
     <dd>
      <p class="para">
       サービスを記述した <abbr title="Web Services Description Language">WSDL</abbr> ファイルまたは URI。
       これは自動的にクライアントを設定します。
       指定されない場合、クライアントは 非WSDL モードで動作します。
      </p>
      <blockquote class="note"><p><strong class="note">注意</strong>: 
       <p class="para">
        デフォルトでは、
        WSDL ファイルはパフォーマンスのためキャッシュされます。
        このキャッシュ機能を無効にしたり、設定を変更する場合は、
        <a href="soap.configuration.php#soap.configuration.list" class="link">SOAP 設定オプション</a>
        や
        <a href="soapclient.construct.php#soapclient.construct.options.cache-wsdl" class="link">
        <code class="literal">cache_wsdl</code> オプション</a>
        を参照ください。
       </p>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">options</code></dt>
     <dd>
      <p class="para">
       SOAP クライアントに指定する追加オプションを連想配列で指定します。
       <code class="parameter">wsdl</code> が指定された場合、
       このパラメータはオプションです。
       指定されない場合、
       <code class="literal">location</code> と<code class="literal">url</code>
       オプションを指定する必要があります。
       <dl>
        
         <dt id="soapclient.construct.options.location">
          <code class="parameter">location</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           リクエストを送信する SOAP サーバーのURL
          </p>
          <p class="para">
           <code class="parameter">wsdl</code> パラメータが指定されない場合、
           必須です。
           <code class="parameter">wsdl</code> と
           <code class="literal">location</code> が指定された場合、
           <code class="literal">location</code> オプションは
           WSDL ファイルで指定されたあらゆる location を上書きします。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.uri">
          <code class="parameter">uri</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           SOAP サービスのターゲット名前空間です。
          </p>
          <p class="para">
           <code class="parameter">wsdl</code>
           が指定されていない場合、このパラメータは必須です。
           そうでない場合、この値は無視されます。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.style">
          <code class="parameter">style</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           <strong><code><a href="soap.constants.php#constant.soap-rpc">SOAP_RPC</a></code></strong> と
           <strong><code><a href="soap.constants.php#constant.soap-document">SOAP_DOCUMENT</a></code></strong> を使うと、
           このクライアントで使うバインディングスタイルを指定します。
           <strong><code><a href="soap.constants.php#constant.soap-rpc">SOAP_RPC</a></code></strong> は
           RPCスタイルのバインディングを指定します。
           この場合の SOAP リクエストのボディには、
           関数コールの標準エンコーディングが含まれます。
           <strong><code><a href="soap.constants.php#constant.soap-document">SOAP_DOCUMENT</a></code></strong>  は
           ドキュメントスタイルのバインディングを指定します。
           この場合の SOAP リクエストのボディには、
           サービス定義を記した XML ドキュメントが含まれます。
          </p>
          <p class="para">
           <code class="parameter">wsdl</code>  が指定された場合、
           このオプションは無視され、
           スタイルは WDSL ファイルから読み込まれます。
          </p>
          <p class="para">
           このオプションと
           <code class="parameter">wsdl</code> パラメータ
           を両方指定しなかった場合、
           RPCスタイルを使います。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.use">
          <code class="parameter">use</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           <strong><code><a href="soap.constants.php#constant.soap-encoded">SOAP_ENCODED</a></code></strong> や
           <strong><code><a href="soap.constants.php#constant.soap-literal">SOAP_LITERAL</a></code></strong> を使うと、
           このクライアントで使うエンコーディングスタイルを指定します。
           <strong><code><a href="soap.constants.php#constant.soap-encoded">SOAP_ENCODED</a></code></strong> は、
           SOAP 仕様で定義された型を使い、エンコーディングを指定します。
           <strong><code><a href="soap.constants.php#constant.soap-literal">SOAP_LITERAL</a></code></strong> は、
           サービスで定義されたスキームを使い、
           エンコーディングを指定します。
          </p>
          <p class="para">
           <code class="parameter">wsdl</code>  が指定された場合、
           このオプションは無視され、
           エンコーディングは WDSL ファイルから読み込まれます。
          </p>
          <p class="para">
           このオプションと
           <code class="parameter">wsdl</code> パラメータ
           を両方指定しなかった場合、
           &quot;encoded&quot; スタイルを使います。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.soap-version">
          <code class="parameter">soap_version</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           使用する SOAP プロトコルのバージョンを指定します:
           SOAP 1.1 の場合は <strong><code><a href="soap.constants.php#constant.soap-1-1">SOAP_1_1</a></code></strong> を指定します。
           SOAP 1.2 の場合は <strong><code><a href="soap.constants.php#constant.soap-1-2">SOAP_1_2</a></code></strong> を指定します。
          </p>
          <p class="para">
           省略した場合は、SOAP 1.1 を使います。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.authentication">
          <code class="parameter">authentication</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           HTTP 認証をリクエスト時に使う際の、
           認証方法を指定します。
           <strong><code><a href="soap.constants.php#constant.soap-authentication-basic">SOAP_AUTHENTICATION_BASIC</a></code></strong>
           と <strong><code><a href="soap.constants.php#constant.soap-authentication-digest">SOAP_AUTHENTICATION_DIGEST</a></code></strong>
           が指定できます。
          </p>
          <p class="para">
           省略された場合、
           かつ <code class="literal">login</code> オプションが指定されると
           Basic 認証を使います。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.login">
          <code class="parameter">login</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           Basic 認証と、Digest 認証で使うユーザー名を指定します。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.password">
          <code class="parameter">password</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           Basic 認証と、Digest 認証で使うパスワードを指定します。
          </p>
          <p class="para">
           HTTPS クライアント認証で使う
           <code class="literal">passphrase</code> と混同しないようにして下さい。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.local-cert">
          <code class="parameter">local_cert</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           HTTPS 認証で使うクライアント証明書のパス。
           証明書ファイルは、
           証明書と秘密鍵が両方入った状態で、
           <abbr title="Privacy-Enhanced Mail">PEM</abbr>エンコードされている必要があります。
          </p>
          <p class="para">
           このファイルには、発行者のチェインも含めることができます。
           それらを含める場合、クライアント証明書の後に置く必要があります。
          </p>
          <p class="para">
           <a href="soapclient.construct.php#soapclient.construct.options.stream-context" class="link">
           <code class="parameter">stream_context</code></a>
           でも設定できます。
           この場合、秘密鍵のファイルは別に指定できます。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.passphrase">
          <code class="parameter">passphrase</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           <code class="literal">local_cert</code> 
           オプションで指定したクライアント証明書のための
           パスフレーズ。
          </p>
          <p class="para">
           Basic 認証や Digest 認証で使う
           <code class="literal">password</code> と混同しないようにして下さい。
          </p>
          <p class="para">
           <a href="soapclient.construct.php#soapclient.construct.options.stream-context" class="link">
           <code class="parameter">stream_context</code></a>
           でも設定できます。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.proxy-host">
          <code class="parameter">proxy_host</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           HTTPリクエスト時に使う、
           プロキシサーバーとして用いるホスト名を指定します。
          </p>
          <p class="para">
           <code class="literal">proxy_port</code>
           オプションも指定する必要があります。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.proxy-port">
          <code class="parameter">proxy_port</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           <code class="literal">proxy_host</code>
           で指定したプロキシサーバーに接続する際に使うポート番号。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.proxy-login">
          <code class="parameter">proxy_login</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           <code class="literal">proxy_host</code>
           で指定したプロキシサーバーに接続する際に、
           Basic 認証で用いるオプションのユーザー名
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.proxy-password">
          <code class="parameter">proxy_password</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           <code class="literal">proxy_host</code>
           で指定したプロキシサーバーに接続する際に、
           Basic 認証で用いるオプションのパスワード
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.compression">
          <code class="parameter">compression</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           SOAP リクエストとレスポンスの圧縮を有効にします。
          </p>
          <p class="para">
           この値は、3つの値を ビット演算のOR で指定します:
           オプションの <strong><code><a href="soap.constants.php#constant.soap-compression-accept">SOAP_COMPRESSION_ACCEPT</a></code></strong>
           は、&quot;Accept-Encoding&quot; ヘッダを指定します。
           <strong><code><a href="soap.constants.php#constant.soap-compression-gzip">SOAP_COMPRESSION_GZIP</a></code></strong>
           や <strong><code><a href="soap.constants.php#constant.soap-compression-deflate">SOAP_COMPRESSION_DEFLATE</a></code></strong>
           は、使用する圧縮アルゴリズムと、
           リクエストで使う圧縮レベルを 1 から 9 の間の数値で指定します。
           たとえば、双方向の gzip 圧縮を最高の圧縮レベルで行う場合は、
           <code class="literal">SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9</code>
           を指定します。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.encoding">
          <code class="parameter">encoding</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           内部的な文字エンコーディングを指定します。
           リクエストはここで指定されたエンコーディングから、
           常に UTF-8 に変換して送られ、
           レスポンスはこのエンコーディングに変換されます。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.trace">
          <code class="parameter">trace</code>
          <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
         </dt>
         <dd>
          <p class="para">
           リクエストやレスポンスのキャプチャを行います。
           キャプチャした情報は
           <span class="methodname"><a href="soapclient.getlastrequest.php" class="methodname">SoapClient::__getLastRequest()</a></span>,
           <span class="methodname"><a href="soapclient.getlastrequestheaders.php" class="methodname">SoapClient::__getLastRequestHeaders()</a></span>,
           <span class="methodname"><a href="soapclient.getlastresponse.php" class="methodname">SoapClient::__getLastResponse()</a></span>,
           <span class="methodname"><a href="soapclient.getlastresponseheaders.php" class="methodname">SoapClient::__getLastResponseHeaders()</a></span>.
           を使ってアクセスできます。
          </p>
          <p class="para">
           省略した場合のデフォルト値は <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> です。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.classmap">
          <code class="parameter">classmap</code>
          <span class="type"><a href="language.types.array.php" class="type array">array</a></span>
         </dt>
         <dd>
          <p class="para">
           WSDL 型を PHP クラスにマッピングするために使用可能です。
           このオプションには、キーとしてWSDL 型、
           値として PHP クラスの名前を持つ配列を指定する必要があります。
           型の名前は、
           要素の(タグ)名前と一致させる必要はないことに注意して下さい。
          </p>
          <p class="para">
           指定するクラス名は、常に
           <a href="language.namespaces.php" class="link">名前空間</a>
           で完全修飾されているべきですし、
           <code class="literal">\</code> で始まってはいけません。
           正しい名前は、
           <a href="language.oop5.basic.php#language.oop5.basic.class.class" class="link">::class</a>
           を使えば生成できます。
          </p>
          <p class="para">
           クラスのインスタンスを生成する場合、
           コンストラクタはコールされず、
           個別のプロパティに対して
           マジックメソッド
           <a href="language.oop5.overloading.php#object.set" class="link">__set()</a> と
           <a href="language.oop5.overloading.php#object.get" class="link">__get()</a> が
           コールされる点にも注意して下さい。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.typemap">
          <code class="parameter">typemap</code>
          <span class="type"><a href="language.types.array.php" class="type array">array</a></span>
         </dt>
         <dd>
          <p class="para">
           ユーザー定義のコールバック関数を使って、
           型マッピングを定義します。
           型マッピングは配列で定義され、
           キーは
           <code class="literal">type_name</code> (XML 要素型を指定した文字列)、
           <code class="literal">type_ns</code> (名前空間URI を指定した文字列)、
           <code class="literal">from_xml</code> (文字列を受け取り、
           オブジェクトを返す <span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span>)、
           <code class="literal">to_xml</code> (オブジェクトをひとつ受け取り、
           文字列を返す <span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span>) です。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.exceptions">
          <code class="parameter">exceptions</code>
          <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
         </dt>
         <dd>
          <p class="para">
           エラーが起きた際に、 
           <span class="classname"><a href="class.soapfault.php" class="classname">SoapFault</a></span>
           をスローするかどうかを指定します。
          </p>
          <p class="para">
           デフォルトは <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> です。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.connection-timeout">
          <code class="parameter">connection_timeout</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           SOAP サービスに接続する際のタイムアウト秒数を指定します。
           これを使用しても、
           レスポンスが遅いサービスのタイムアウトを定義することはできません。
           サービスのコールが完了するまでの待ち時間を制限するには、
           <a href="filesystem.configuration.php#ini.default-socket-timeout" class="link">default_socket_timeout</a>
           が使えます。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.cache-wsdl">
          <code class="parameter">cache_wsdl</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           <code class="parameter">wsdl</code> を指定した場合、
           かつ
           <a href="soap.configuration.php#ini.soap.wsdl-cache-enabled" class="link">soap.wsdl_cache_enabled</a> が有効になっている場合に、
           このオプションはキャッシュのタイプを指定します。
           <strong><code><a href="soap.constants.php#constant.wsdl-cache-none">WSDL_CACHE_NONE</a></code></strong>,
           <strong><code><a href="soap.constants.php#constant.wsdl-cache-disk">WSDL_CACHE_DISK</a></code></strong>,
           <strong><code><a href="soap.constants.php#constant.wsdl-cache-memory">WSDL_CACHE_MEMORY</a></code></strong>,
           <strong><code><a href="soap.constants.php#constant.wsdl-cache-both">WSDL_CACHE_BOTH</a></code></strong> のいずれかが指定できます。
          </p>
          <p class="para">
           ふたつのタイプのキャッシュが利用できます。
           WSDL を現在のプロセスのメモリにキャッシュする
           インメモリのキャッシュと、
           WSDL をディスク上にキャッシュし、
           全てのプロセスと共有するディスクキャッシュがあります。
           ディスクキャッシュで使うディレクトリは
           <a href="soap.configuration.php#ini.soap.wsdl-cache-dir" class="link">soap.wsdl_cache_dir</a>
           で指定できます。
           どちらのタイプのキャッシュでも、
           <a href="soap.configuration.php#ini.soap.wsdl-cache-ttl" class="link">soap.wsdl_cache_ttl</a>
           で指定した寿命があります。
           インメモリキャッシュの場合、
           <a href="soap.configuration.php#ini.soap.wsdl-cache-limit" class="link">soap.wsdl_cache_limit</a>
           でキャッシュエントリの数の最大値も指定できます。
          </p>
          <p class="para">
           この値を指定しない場合、
           <a href="soap.configuration.php#ini.soap.wsdl-cache" class="link">
           soap.wsdl_cache</a> オプションの値を使います。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.user-agent">
          <code class="parameter">user_agent</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           リクエストをする際に
           <code class="literal">User-Agent</code> で使う値。
          </p>
          <p class="para">
           <a href="soapclient.construct.php#soapclient.construct.options.stream-context" class="link">
           <code class="parameter">stream_context</code></a>
           でも指定できます。
          </p>
          <p class="para">
           この値を指定しない場合、
           <code class="literal">&quot;PHP-SOAP/&quot;</code> の後に、
           <strong><code><a href="reserved.constants.php#constant.php-version">PHP_VERSION</a></code></strong> の値を付けたものを使います。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.stream-context">
          <code class="parameter">stream_context</code>
          <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>
         </dt>
         <dd>
          <p class="para">
           追加のオプションを設定できる
           <a href="context.php" class="link">stream context</a>。
           これは
           <span class="function"><a href="function.stream-context-create.php" class="function">stream_context_create()</a></span> で生成できます。
          </p>
          <p class="para">
           このコンテキストには、
           <a href="context.socket.php" class="link">socket context options</a>,
           <a href="context.ssl.php" class="link">SSL context options</a>,
           <a href="context.http.php" class="link">HTTP context options</a> が含まれます:
           <code class="literal">content_type</code>, <code class="literal">header</code>,
           <code class="literal">max_redirects</code>, <code class="literal">protocol_version</code>,
           <code class="literal">user_agent</code> が設定できます。
          </p>
          <p class="para">
           <code class="literal">&#039;header&#039;</code> コンテキストオプションで指定された場合、以下のHTTPヘッダは自動生成され、無視されることに注意して下さい:
           <code class="literal">host</code>, <code class="literal">connection</code>,
           <code class="literal">user-agent</code>, <code class="literal">content-length</code>,
           <code class="literal">content-type</code>, <code class="literal">cookie</code>,
           <code class="literal">authorization</code>, <code class="literal">proxy-authorization</code>
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.features">
          <code class="parameter">features</code>
          <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
         </dt>
         <dd>
          <p class="para">
           以下の機能を有効にするための、ひとつ以上のビットマスク:
           <dl>
            
             <dt>
              <strong><code><a href="soap.constants.php#constant.soap-single-element-arrays">SOAP_SINGLE_ELEMENT_ARRAYS</a></code></strong>
             </dt>
             <dd>
              <p class="para">
               レスポンスを配列にデコードする際には、
               特定の親要素の中で要素名が一度または複数回現れるかをデフォルトで自動検知します。
               一度しか現れない要素については、
               オブジェクトのプロパティを通じてコンテンツに直接アクセスできます。
               複数回現れる要素については、
               プロパティには配列が含まれ、
               マッチする要素の内容の配列が入ります。
              </p>
              <p class="para">
               <strong><code><a href="soap.constants.php#constant.soap-single-element-arrays">SOAP_SINGLE_ELEMENT_ARRAYS</a></code></strong>
               が有効になった場合、
               一度しか現れない要素は要素数がひとつの配列になります。
               これは全ての要素と一貫性を保つためです。
               これは、レスポンスにスキーマを含んでいるWSDLを使っている場合にのみ意味があります。具体的には、以下の例を参照ください。
              </p>
             </dd>
            
            
             <dt>
              <strong><code><a href="soap.constants.php#constant.soap-use-xsi-array-type">SOAP_USE_XSI_ARRAY_TYPE</a></code></strong>
             </dt>
             <dd>
              <p class="para">
               <a href="soapclient.construct.php#soapclient.construct.options.use" class="link"><code class="literal">use</code>
               オプション</a> を使ったり、
               WSDL プロパティを <code class="literal">encoded</code>
               に設定した場合に、
               配列の型をスキーマ特有のそれにするのではなく、
               <code class="literal">SOAP-ENC:Array</code> にします。
              </p>
             </dd>
            
            
             <dt>
              <strong><code><a href="soap.constants.php#constant.soap-wait-one-way-calls">SOAP_WAIT_ONE_WAY_CALLS</a></code></strong>
             </dt>
             <dd>
              <p class="para">
               WDSL が一方向のリクエストを指定していた場合であっても、
               レスポンスを待つ。
              </p>
             </dd>
            
           </dl>
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.keep-alive">
          <code class="parameter">keep_alive</code>
          <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
         </dt>
         <dd>
          <p class="para">
           <code class="literal">Connection: Keep-Alive</code> ヘッダや
           <code class="literal">Connection: close</code>
           を送信するかどうかを boolean で指定します。
          </p>
          <p class="para">
           デフォルトは <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> です。
          </p>
         </dd>
        
        
         <dt id="soapclient.construct.options.ssl-method">
          <code class="parameter">ssl_method</code>
          <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
         </dt>
         <dd>
          <p class="para">
           セキュアな HTTP 接続で用いる、
           SSL または TLS のバージョンを指定します。
           <strong><code><a href="soap.constants.php#constant.soap-ssl-method-sslv2">SOAP_SSL_METHOD_SSLv2</a></code></strong>
           や <strong><code><a href="soap.constants.php#constant.soap-ssl-method-sslv3">SOAP_SSL_METHOD_SSLv3</a></code></strong>
           を指定すると、
           それぞれ SSL 2、 SSL 3 を強制的に使います。
           <strong><code><a href="soap.constants.php#constant.soap-ssl-method-sslv23">SOAP_SSL_METHOD_SSLv23</a></code></strong>
           を指定しても意味がありません。
           これは後方互換のためだけに存在しています。
           PHP 7.2.0 以降では、
           <strong><code><a href="soap.constants.php#constant.soap-ssl-method-tls">SOAP_SSL_METHOD_TLS</a></code></strong>
           を指定しても同様に意味がありません。
           これより前のバージョンでは、
           この定数を指定すると TLS 1.0 を強制的に使っていました。
          </p>
          <p class="para">
           SSL バージョン 2 と 3 はセキュアでないとみなされています。
           よってインストール済みの OpenSSL
           ライブラリではサポートされていない可能性があることに注意しましょう。
          </p>
          <p class="para">
           このオプションは
           PHP 8.1.0 以降では
           <strong>推奨されません</strong>。
           個別の TLS のバージョンを指定できる、
           より柔軟性に富んだ代替があります。
           <a href="soapclient.construct.php#soapclient.construct.options.stream-context" class="link">
           <code class="parameter">stream_context</code></a> オプションを
           &#039;crypto_method&#039;
           コンテキストパラメータと一緒に使うようにして下さい。
           <div class="informalexample">
            <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// TLS 1.3 のみを使うよう指定<br /></span><span style="color: #0000BB">$context </span><span style="color: #007700">= </span><span style="color: #0000BB">stream_context_create</span><span style="color: #007700">([<br />    </span><span style="color: #DD0000">'ssl' </span><span style="color: #007700">=&gt; [<br />        </span><span style="color: #DD0000">'crypto_method' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT<br />     </span><span style="color: #007700">]<br />]);<br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, [</span><span style="color: #DD0000">'context' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$context</span><span style="color: #007700">]);</span></span></code></div>
            </div>

           </div>
          </p>
         </dd>
        
       </dl>
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-soapclient.construct-errors">
  <h3 class="title">エラー / 例外</h3>
  <p class="para">
   <span class="methodname"><strong>SoapClient::__construct()</strong></span> は、 
   非 WSDL モードで <code class="literal">location</code> や
   <code class="literal">uri</code> オプションを指定しなかったときに
   <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong> エラーとなります。
  </p>
  <p class="para">
   <code class="parameter">wsdl</code> URI が読み込めなかった場合に
   <span class="classname"><a href="class.soapfault.php" class="classname">SoapFault</a></span> をスローします。
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-soapclient.construct-examples">
  <h3 class="title">例</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>例1 
     <span class="methodname"><strong>SoapClient::__construct()</strong></span> の例
    </strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'soap_version'   </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">SOAP_1_2</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'login'          </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"some_name"</span><span style="color: #007700">,<br />                                            </span><span style="color: #DD0000">'password'       </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"some_password"</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'proxy_host'     </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">,<br />                                            </span><span style="color: #DD0000">'proxy_port'     </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">8080</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'proxy_host'     </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">,<br />                                            </span><span style="color: #DD0000">'proxy_port'     </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">8080</span><span style="color: #007700">,<br />                                            </span><span style="color: #DD0000">'proxy_login'    </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"some_name"</span><span style="color: #007700">,<br />                                            </span><span style="color: #DD0000">'proxy_password' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"some_password"</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'local_cert'     </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"cert_key.pem"</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #0000BB">null</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'location' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"http://localhost/soap.php"</span><span style="color: #007700">,<br />                                     </span><span style="color: #DD0000">'uri'      </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"http://test-uri/"</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #0000BB">null</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'location' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"http://localhost/soap.php"</span><span style="color: #007700">,<br />                                     </span><span style="color: #DD0000">'uri'      </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"http://test-uri/"</span><span style="color: #007700">,<br />                                     </span><span style="color: #DD0000">'style'    </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">SOAP_DOCUMENT</span><span style="color: #007700">,<br />                                     </span><span style="color: #DD0000">'use'      </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">SOAP_LITERAL</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">,<br />  array(</span><span style="color: #DD0000">'compression' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">SOAP_COMPRESSION_ACCEPT </span><span style="color: #007700">| </span><span style="color: #0000BB">SOAP_COMPRESSION_GZIP </span><span style="color: #007700">| </span><span style="color: #0000BB">9</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"some.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'encoding'</span><span style="color: #007700">=&gt;</span><span style="color: #DD0000">'ISO-8859-1'</span><span style="color: #007700">));<br /><br />class </span><span style="color: #0000BB">MyBook </span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$title</span><span style="color: #007700">;<br />    public </span><span style="color: #0000BB">$author</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"books.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'classmap' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'book' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"MyBook"</span><span style="color: #007700">)));<br /><br /></span><span style="color: #0000BB">$typemap </span><span style="color: #007700">= array(<br />    array(</span><span style="color: #DD0000">"type_ns"  </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"http://schemas.example.com"</span><span style="color: #007700">,<br />         </span><span style="color: #DD0000">"type_name" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"book"</span><span style="color: #007700">,<br />         </span><span style="color: #DD0000">"from_xml"  </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"unserialize_book"</span><span style="color: #007700">,<br />         </span><span style="color: #DD0000">"to_xml"    </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"serialize_book"</span><span style="color: #007700">)<br />);<br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">SoapClient</span><span style="color: #007700">(</span><span style="color: #DD0000">"books.wsdl"</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'typemap' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$typemap</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>

  <p class="para">
   <div class="example" id="example-2">
    <p><strong>例2 <strong><code><a href="soap.constants.php#constant.soap-single-element-arrays">SOAP_SINGLE_ELEMENT_ARRAYS</a></code></strong> の機能を使う</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Assuming a response like this, and an appropriate WSDL:<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:example"&gt;<br />    &lt;SOAP-ENV:Body&gt;<br />        &lt;response&gt;<br />            &lt;collection&gt;<br />                &lt;item&gt;Single&lt;/item&gt;<br />            &lt;/collection&gt;<br />            &lt;collection&gt;<br />                &lt;item&gt;First&lt;/item&gt;<br />                &lt;item&gt;Second&lt;/item&gt;<br />            &lt;/collection&gt;<br />        &lt;/response&gt;<br />    &lt;/SOAP-ENV:Body&gt;<br />&lt;/SOAP-ENV:Envelope&gt;<br />*/<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Default:\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">TestSoapClient</span><span style="color: #007700">(</span><span style="color: #0000BB">__DIR__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'/temp.wsdl'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$response </span><span style="color: #007700">= </span><span style="color: #0000BB">$client</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exampleRequest</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">( </span><span style="color: #0000BB">$response</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">collection</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">item </span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">( </span><span style="color: #0000BB">$response</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">collection</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">item </span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"\nWith SOAP_SINGLE_ELEMENT_ARRAYS:\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$client </span><span style="color: #007700">= new </span><span style="color: #0000BB">TestSoapClient</span><span style="color: #007700">(</span><span style="color: #0000BB">__DIR__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'/temp.wsdl'</span><span style="color: #007700">, [</span><span style="color: #DD0000">'features' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">SOAP_SINGLE_ELEMENT_ARRAYS</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$response </span><span style="color: #007700">= </span><span style="color: #0000BB">$client</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exampleRequest</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">( </span><span style="color: #0000BB">$response</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">collection</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">item </span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">( </span><span style="color: #0000BB">$response</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">collection</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">item </span><span style="color: #007700">);</span></span></code></div>
    </div>


    <div class="example-contents"><p>上の例の出力は以下となります。</p></div>

    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Default:
string(6) &quot;Single&quot;
array(2) {
  [0] =&gt;
  string(5) &quot;First&quot;
  [1] =&gt;
  string(6) &quot;Second&quot;
}

With SOAP_SINGLE_ELEMENT_ARRAYS:
array(1) {
  [0] =&gt;
  string(6) &quot;Single&quot;
}
array(2) {
  [0] =&gt;
  string(5) &quot;First&quot;
  [1] =&gt;
  string(6) &quot;Second&quot;
}</pre>
</div>
    </div>
   </div>
  </p>
 </div>


</div><?php manual_footer($setup); ?>