<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration81.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'migration81.incompatible.php',
    1 => '下位互換性のない変更点',
    2 => '下位互換性のない変更点',
  ),
  'up' => 
  array (
    0 => 'migration81.php',
    1 => 'PHP 8.0.x から PHP 8.1.x への移行',
  ),
  'prev' => 
  array (
    0 => 'migration81.constants.php',
    1 => '新しいグローバル定数',
  ),
  'next' => 
  array (
    0 => 'migration81.deprecated.php',
    1 => 'PHP 8.1.x で推奨されなくなる機能',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'appendices/migration81/incompatible.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration81.incompatible" class="sect1">
 <h2 class="title">下位互換性のない変更点</h2>

 <div class="sect2" id="migration81.incompatible.core">
  <h3 class="title">PHP コア</h3>

  <div class="sect3" id="migration81.incompatible.core.globals-access">
   <h4 class="title">$GLOBALS へのアクセス制限</h4>

   <p class="para">
    <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> 配列へのアクセスに対し、
    多くの制限が適用されるようになりました。
    <code class="code">$GLOBALS[&#039;var&#039;]</code> のような、
    個別の配列要素に対する読み取りや書き込みは、
    これまで通り動作します。
    <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> 配列全体への読み取り専用のアクセスも、
    引き続きサポートされます。
    しかし、<var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var> 配列全体への書き込みは、
    もはやサポートされなくなりました。
    たとえば、<code class="code">array_pop($GLOBALS)</code>
    のようなコードは、エラーが発生します。
   </p>
  </div>

  <div class="sect3" id="migration81.incompatible.core.static-variable-inheritance">
   <h4 class="title">
    継承したメソッド内で <span class="modifier">static</span> 変数を使う
   </h4>

   <p class="para">
    static 変数を使っているメソッドが継承された
    (但し、オーバーライドはされていない)
    場合、継承されたメソッドは
    static 変数を親クラスのメソッドと共有するようになりました。
    <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: #007700">class </span><span style="color: #0000BB">A </span><span style="color: #007700">{<br />    public static function </span><span style="color: #0000BB">counter</span><span style="color: #007700">() {<br />        static </span><span style="color: #0000BB">$counter </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">$counter</span><span style="color: #007700">++;<br />        return </span><span style="color: #0000BB">$counter</span><span style="color: #007700">;<br />    }<br />}<br />class </span><span style="color: #0000BB">B </span><span style="color: #007700">extends </span><span style="color: #0000BB">A </span><span style="color: #007700">{}<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">A</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(1)<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">A</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(2)<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">B</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(3), 以前のバージョンでは int(1)<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">B</span><span style="color: #007700">::</span><span style="color: #0000BB">counter</span><span style="color: #007700">()); </span><span style="color: #FF8000">// int(4), 以前のバージョンでは int(2)<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>

    これは、メソッド中の static 変数が、
    static プロパティと同じ振る舞いをするようになったということです。
   </p>
  </div>

  <div class="sect3" id="migration81.incompatible.core.optional-before-required">
   <h4 class="title">必須のパラメータの前に、デフォルト値を持つパラメータを指定した場合</h4>

   <p class="para">
    必須のパラメータの前に、
    <a href="functions.arguments.php#functions.arguments.default" class="link">デフォルト値を持つパラメータ</a>
    を指定した場合、
    デフォルト値を持つパラメータは常に必須のパラメータとして扱われるようになりました。
    これは、
    <a href="functions.arguments.php#functions.named-arguments" class="link">名前付き引数</a>
    を使って関数を呼び出した場合でも同様です。
    PHP 8.0.0 以降、かつ 8.1.0 より前のバージョンでは、
    以下のコードは推奨されない警告を発生させていましたが、
    呼び出しは成功していました。
    PHP 8.1.0 以降では、
    <span class="classname"><a href="class.argumentcounterror.php" class="classname">ArgumentCountError</a></span>
    がスローされるようになっています。
    位置を指定して呼び出した場合でも、同じエラーがスローされます。
    <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: #007700">function </span><span style="color: #0000BB">makeyogurt</span><span style="color: #007700">(</span><span style="color: #0000BB">$container </span><span style="color: #007700">= </span><span style="color: #DD0000">"bowl"</span><span style="color: #007700">, </span><span style="color: #0000BB">$flavour</span><span style="color: #007700">)<br />{<br />    return </span><span style="color: #DD0000">"Making a </span><span style="color: #0000BB">$container</span><span style="color: #DD0000"> of </span><span style="color: #0000BB">$flavour</span><span style="color: #DD0000"> yogurt.\n"</span><span style="color: #007700">;<br />}<br />try<br />{<br />    echo </span><span style="color: #0000BB">makeyogurt</span><span style="color: #007700">(</span><span style="color: #0000BB">flavour</span><span style="color: #007700">: </span><span style="color: #DD0000">"raspberry"</span><span style="color: #007700">);<br />}<br />catch (</span><span style="color: #0000BB">Error $e</span><span style="color: #007700">)<br />{<br />    echo </span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">), </span><span style="color: #DD0000">' - '</span><span style="color: #007700">, </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <p class="para">上の例の PHP 8.0 での出力は、このようになります。:</p>
     <div class="example-contents screen">
<div class="cdata"><pre>
Deprecated: Required parameter container
 in example.php on line 3
Making a bowl of raspberry yogurt.
</pre></div>
     </div>
     <p class="para">上の例の PHP 8.1 での出力は、このようになります。:</p>
     <div class="example-contents screen">
<div class="cdata"><pre>
Deprecated: Optional parameter $container declared before required parameter
 $flavour is implicitly treated as a required parameter in example.php on line 3
ArgumentCountError - makeyogurt(): Argument #1 ($container) not passed
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    但し、必須のパラメータの前であっても、
    <a href="language.types.declarations.php#language.types.declarations.nullable" class="link">Null を許容する型</a> を指定するために、
    パラメータにデフォルト値 <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> を指定できることに注意して下さい。
    その場合でも、そのパラメータは必須であることには変わりありません。
   </p>
  </div>

  <div class="sect3" id="migration81.incompatible.core.type-compatibility-internal">
   <h4 class="title">内部クラスと戻り値の型の互換性</h4>

   <p class="para">
    ほとんどの final でない内部メソッドは、
    それをオーバライドする際、
    互換性がある戻り値の型を宣言することが必須になりました。
    そうしない場合、継承が有効かを検証する際に、
    推奨されない警告が発生するようになります。
    PHP のバージョン間の互換性を保ちたいがために、
    戻り値の型を宣言できない場合、
    アトリビュート <span class="classname"><a href="class.returntypewillchange.php" class="classname">ReturnTypeWillChange</a></span>
    を追加することで警告を抑止できます。
   </p>
  </div>

  <div class="sect3" id="migration81.incompatible.core.new-keywords">
   <h4 class="title">新しいキーワード</h4>
   <p class="para">
    <code class="literal">readonly</code> は予約されたキーワードになりました。しかし、まだ関数名としては使えます。
   </p>
   <p class="para">
    <code class="literal">never</code> が予約語になりました。
    よって、クラスやインターフェイス、
    トレイトの名前として使えなくなっています。
    名前空間の中であっても同様です。
   </p>
  </div>
 </div>

 <div class="sect2" id="migration81.incompatible.resource2object">
  <h3 class="title">リソースからオブジェクトへの移行</h3>

  <p class="para">
   いくつかの <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> が、<span class="type"><a href="language.types.object.php" class="type object">object</a></span> に移行しました。
   <span class="function"><a href="function.is-resource.php" class="function">is_resource()</a></span>
   関数を使って戻り値をチェックしているコードは、
   <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> を返すことをチェックするコードに置き換えるべきです。 
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     <a href="book.fileinfo.php" class="link">FileInfo</a> 関数は、
     <code class="literal">fileinfo</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.finfo.php" class="classname">finfo</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.ftp.php" class="link">FTP</a> 関数は、
     <code class="literal">ftp</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.ftp-connection.php" class="classname">FTP\Connection</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.imap.php" class="link">IMAP</a> 関数は、
     <code class="literal">imap</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.imap-connection.php" class="classname">IMAP\Connection</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.ldap.php" class="link">LDAP</a> 関数は、
     <code class="literal">ldap link</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.ldap-connection.php" class="classname">LDAP\Connection</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.ldap.php" class="link">LDAP</a> 関数は、
     <code class="literal">ldap result</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.ldap-result.php" class="classname">LDAP\Result</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.ldap.php" class="link">LDAP</a> 関数は、
     <code class="literal">ldap result entry</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.ldap-result-entry.php" class="classname">LDAP\ResultEntry</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.pgsql.php" class="link">PgSQL</a> 関数は、
     <code class="literal">pgsql link</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.pgsql.php" class="link">PgSQL</a> 関数は、
     <code class="literal">pgsql result</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.pgsql-result.php" class="classname">PgSql\Result</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.pgsql.php" class="link">PgSQL</a> 関数は、
     <code class="literal">pgsql large object</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.pgsql-lob.php" class="classname">PgSql\Lob</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.pspell.php" class="link">PSpell</a> 関数は、
     <code class="literal">pspell</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.pspell-dictionary.php" class="classname">PSpell\Dictionary</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     <a href="book.pspell.php" class="link">PSpell</a> 関数は、
     <code class="literal">pspell config</code> <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ではなく、
     <span class="classname"><a href="class.pspell-config.php" class="classname">PSpell\Config</a></span> オブジェクトを受け取り、
     返すようになりました。
    </p>
   </li>
  </ul>
 </div>

 <div class="sect2" id="migration81.incompatible.mysqli">
  <h3 class="title">MySQLi</h3>

  <p class="para">
   <span class="function"><a href="mysqli-result.fetch-fields.php" class="function">mysqli_fetch_fields()</a></span>
   と
   <span class="function"><a href="mysqli-result.fetch-field-direct.php" class="function">mysqli_fetch_field_direct()</a></span> は、
   <span class="property">max_length</span> を指定すると
   常に <code class="literal">0</code> を返すようになりました。
   この情報は、結果セットを繰り返し処理する際に計算できますし、
   長さの最大値をとります。
   PHP でも以前のバージョンから、
   内部的にこれと同じ処理が行われてきました。
  </p>

  <p class="para">
   <strong><code><a href="mysqli.constants.php#constant.mysqli-stmt-attr-update-max-length">MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH</a></code></strong>
   オプションは、もはや意味をなさなくなりました。
  </p>

  <p class="para">
   <strong><code>MYSQLI_STORE_RESULT_COPY_DATA</code></strong>
   オプションは、もはや意味をなさなくなりました。
   <span class="methodname"><a href="mysqli.store-result.php" class="methodname">mysqli::store_result()</a></span>
   の <code class="parameter">mode</code> 引数にどんな値を渡しても、
   同様に意味がなくなっています。
  </p>

  <p class="para">
   <span class="methodname"><a href="mysqli.construct.php" class="methodname">mysqli::connect()</a></span> は、
   成功時に <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> ではなく、<strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> を返すようになりました。
  </p>

  <p class="para">
   デフォルトのエラー処理モードが、
   &quot;silent&quot; から
   &quot;exceptions&quot; に変更されました。
   この変更の意味の詳細と、
   どのようにこの属性を明示的に設定するかについては、
   <a href="mysqli-driver.report-mode.php" class="link">MySQLi のエラー報告モード</a>
   のページを参照ください。
   以前のバージョンの振る舞いは、
   <code class="code">mysqli_report(MYSQLI_REPORT_OFF);</code>
   を使うことで再現できます。
  </p>

  <p class="para">
   <span class="methodname"><a href="mysqli-stmt.execute.php" class="methodname">mysqli_stmt::execute()</a></span>
   を継承したクラスは、
   追加でオプションの引数を指定しなければいけません。
  </p>
 </div>

 <div class="sect2" id="migration81.incompatible.mysqlnd">
  <h3 class="title">MySQLnd</h3>

  <p class="para">
   INI ディレクティブ
   <a href="mysqlnd.config.php#ini.mysqlnd.fetch_data_copy" class="link">mysqlnd.fetch_data_copy</a>
   が削除されました。
   このディレクティブによって、
   ユーザーの目に見える形で、振る舞いが変更されるべきではないからです。
  </p>
 </div>

 <div class="sect2" id="migration81.incompatible.openssl">
  <h3 class="title">OpenSSL</h3>

  <p class="para">
   EC キーの秘密鍵は、他のキーと同じように
   <abbr title="Public Key Cryptography Standards">PKCS</abbr>#8 フォーマットでエクスポートされるようになりました。
  </p>
  <p class="para">
   <span class="function"><a href="function.openssl-pkcs7-encrypt.php" class="function">openssl_pkcs7_encrypt()</a></span>
   と
   <span class="function"><a href="function.openssl-cms-encrypt.php" class="function">openssl_cms_encrypt()</a></span> は、
   デフォルト値が RC2-40 から AES-128-CBC に変更されました。
   RC2-40 暗号はセキュアではないと見なされており、
   OpenSSL 3 からはデフォルトで有効ではなくなっています。
  </p>
 </div>

 <div class="sect2" id="migration81.incompatible.pdo">
  <h3 class="title">PHP Data Objects(PDO)</h3>

  <p class="para">
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-stringify-fetches">PDO::ATTR_STRINGIFY_FETCHES</a></code></strong>
   は、<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> 型の値を
   <code class="literal">&quot;0&quot;</code> や <code class="literal">&quot;1&quot;</code>
   に変換するようになりました。
   以前のバージョンでは、<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> は文字列に変換されていませんでした。
  </p>
  <p class="para">
   <span class="methodname"><a href="pdostatement.bindcolumn.php" class="methodname">PDOStatement::bindColumn()</a></span>
   に
   <strong><code><a href="pdo.constants.php#pdo.constants.param-lob">PDO::PARAM_LOB</a></code></strong>
   を指定してコールした場合、
   かつ、<strong><code><a href="pdo.constants.php#pdo.constants.attr-stringify-fetches">PDO::ATTR_STRINGIFY_FETCHES</a></code></strong>
   が有効になっていない場合は、
   常にストリームに結果をバインドするようになりました。
   以前のバージョンでは、
   使っているデータベースドライバやバインドが行われるタイミングによって、
   文字列にバインドされることもあれば、
   ストリームにバインドされることもありました。
  </p>

  <div class="sect3" id="migration81.incompatible.pdo.mysql">
   <h4 class="title">MySQL ドライバ</h4>

   <p class="para">
    結果セットの整数と浮動小数点の値は、
    エミュレートされたプリペアドステートメントを使った場合、
    文字列ではなく、
    ネイティブの PHP の型を使って返されるようになりました。
    これは、ネイティブのプリペアドステートメントの振る舞いと一致します。
    以前のバージョンの振る舞いは、
    <strong><code><a href="pdo.constants.php#pdo.constants.attr-stringify-fetches">PDO::ATTR_STRINGIFY_FETCHES</a></code></strong>
    オプションを有効にすることで再現できます。
   </p>
  </div>

  <div class="sect3" id="migration81.incompatible.pdo.sqlite">
   <h4 class="title">SQLite ドライバ</h4>

   <p class="para">
    結果セットの整数と浮動小数点の値は、
    ネイティブの PHP の型を使って返されるようになりました。
    以前のバージョンの振る舞いは、
    <strong><code><a href="pdo.constants.php#pdo.constants.attr-stringify-fetches">PDO::ATTR_STRINGIFY_FETCHES</a></code></strong>
    オプションを有効にすることで再現できます。
   </p>
  </div>
 </div>

 <div class="sect2" id="migration81.incompatible.phar">
  <h3 class="title">Phar</h3>

  <p class="para">
   <span class="interfacename"><a href="class.arrayaccess.php" class="interfacename">ArrayAccess</a></span>
   インターフェイスに準拠するため、
   <span class="methodname"><a href="phar.offsetunset.php" class="methodname">Phar::offsetUnset()</a></span> と、
   <span class="methodname"><a href="phardata.offsetunset.php" class="methodname">PharData::offsetUnset()</a></span>
   は <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> を返さなくなりました。
  </p>
 </div>

 <div class="sect2" id="migration81.incompatible.standard">
  <h3 class="title">標準ライブラリ</h3>

  <p class="para">
   <span class="function"><a href="function.version-compare.php" class="function">version_compare()</a></span> は、
   ドキュメントに書かれていない演算子の省略形を受け入れなくなりました。
  </p>

  <p class="para">
   <span class="function"><a href="function.htmlspecialchars.php" class="function">htmlspecialchars()</a></span>,
   <span class="function"><a href="function.htmlentities.php" class="function">htmlentities()</a></span>,
   <span class="function"><a href="function.htmlspecialchars-decode.php" class="function">htmlspecialchars_decode()</a></span>,
   <span class="function"><a href="function.html-entity-decode.php" class="function">html_entity_decode()</a></span>,
   <span class="function"><a href="function.get-html-translation-table.php" class="function">get_html_translation_table()</a></span> のデフォルト値が、
   <strong><code><a href="string.constants.php#constant.ent-compat">ENT_COMPAT</a></code></strong> から
   <code class="literal">ENT_QUOTES | ENT_SUBSTITUTE</code> に変更されました。
   これは、<code class="literal">&#039;</code> が
   <code class="literal">&amp;#039;</code> にエスケープされるようになるということです。
   以前のバージョンでは、<code class="literal">&#039;</code>
   に対してはエスケープは行われていませんでした。
   さらに、不正な UTF-8 文字列は、空文字列を返すのではなく、
   Unicode 置換文字に置きかえられるようになっています。
  </p>

  <p class="para">
   <span class="function"><a href="function.debug-zval-dump.php" class="function">debug_zval_dump()</a></span> は、
   値の前に <code class="literal">&amp;</code> を付加する代わりに、
   自身のリファレンスカウントだけでなく、
   リファレンスラッパーのリファレンスカウントも表示するようになりました。
   これは、PHP 7.0 以降のリファレンスの表現をより正確にモデル化したものです。
  </p>

  <p class="para">
   <span class="function"><a href="function.debug-zval-dump.php" class="function">debug_zval_dump()</a></span> は、
   インターン化された文字列や、
   変更できない配列については、
   ダミーのリファレンスカウントではなく、
   <code class="literal">interned</code> と表示するようになりました。
  </p>
 </div>

 <div class="sect2" id="migration81.incompatible.spl">
  <h3 class="title">Standard PHP Library (SPL)</h3>

  <p class="para">
   <span class="classname"><a href="class.splfixedarray.php" class="classname">SplFixedArray</a></span> は、
   <span class="type"><a href="language.types.array.php" class="type array">array</a></span> のように JSON にエンコードできるようになりました。
  </p>
 </div>

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