svn: /phpdoc/ja/trunk/appendices/migration80/ incompatible.xml

[email protected] (Yoshinari Takaoka)
Newsgroups php.doc.ja
Message-ID <[email protected]>
mumumu                                   Mon, 23 Nov 2020 14:05:33 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=351541

Log:
[status ready] translated incompatible.xml in migration80

Changed paths:
    U   phpdoc/ja/trunk/appendices/migration80/incompatible.xml
svn-diffs-351541.txt (text/x-diff, 68.8 KB)
Modified: phpdoc/ja/trunk/appendices/migration80/incompatible.xml
===================================================================
--- phpdoc/ja/trunk/appendices/migration80/incompatible.xml	2020-11-23 13:58:46 UTC (rev 351540)
+++ phpdoc/ja/trunk/appendices/migration80/incompatible.xml	2020-11-23 14:05:33 UTC (rev 351541)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision: 351500 $ -->
-<!-- EN-Revision: 351500 Maintainer: mumumu Status: working -->
+<!-- EN-Revision: 351500 Maintainer: mumumu Status: ready -->

 <sect1 xml:id="migration80.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
  <title>下位互換性のない変更点</title>
@@ -12,9 +12,9 @@
    <title>文字列と数値の比較</title>

    <para>
-    数値と非数値文字列を(厳密でない)比較する場合、
+    (厳密でないやり方で)数値と非数値文字列を比較する場合、
     数値を文字列にキャストし、文字列と比較するようになりました。
-    数値と数値文字列の比較は、以前と同じふるまいをします。
+    数値と数値文字列の比較は、以前と同じ振る舞いをします。
     注意すべきなのは、これによって、
     <code>0 == "not-a-number"</code> が &false; と見なされるようになったことです。
     <informaltable>
@@ -298,22 +298,26 @@
      <para>
       <simplelist>
        <member>
-        Attempting to write to a property of a non-object. Previously this
-        implicitly created an stdClass object for null, false and empty strings.
+        オブジェクトでない値にプロパティを書き込もうとした場合。
+        これより前のバージョンでは、
+        &null; については stdClass オブジェクトが暗黙のうちに作られ、
+        空文字列については &false; となっていました。
        </member>
        <member>
-        Attempting to append an element to an array for which the PHP_INT_MAX key
-        is already used.
+        PHP_INT_MAX キーが既に使われている配列に対して、
+        要素を追加しようとした場合。
        </member>
        <member>
-        Attempting to use an invalid type (array or object) as an array key or
-        string offset.
+        不正な型(配列やオブジェクト)
+        を配列のキーや文字列のオフセットとして使おうとした場合。
        </member>
-       <member>Attempting to write to an array index of a scalar value.</member>
-       <member>Attempting to unpack a non-array/Traversable.</member>
+       <member>スカラー値に配列のインデックスを書き込もうとした場合</member>
+       <member>配列やTraversable でない値をアンパックしようとした場合</member>
        <member>
-        Attempting to access unqualified constants which are undefined.
-        Previously, unqualified constant accesses resulted in a warning and were interpreted as strings.
+        未定義の、非修飾の定数にアクセスしようとした場合。
+        これより前のバージョンでは、
+        非修飾の定数にアクセスしようとすると、警告が発生し、
+        文字列として解釈されていました。
        </member>
       </simplelist>
      </para>
@@ -322,16 +326,16 @@
      </para>
      <para>
       <simplelist>
-       <member>Attempting to read an undefined variable.</member>
-       <member>Attempting to read an undefined property.</member>
-       <member>Attempting to read an undefined array key.</member>
-       <member>Attempting to read a property of a non-object.</member>
-       <member>Attempting to access an array index of a non-array.</member>
-       <member>Attempting to convert an array to string.</member>
-       <member>Attempting to use a resource as an array key.</member>
-       <member>Attempting to use null, a boolean, or a float as a string offset.</member>
-       <member>Attempting to read an out-of-bounds string offset.</member>
-       <member>Attempting to assign an empty string to a string offset.</member>
+       <member>未定義の変数を読み取ろうとした場合</member>
+       <member>未定義のプロパティを読み取ろうとした場合</member>
+       <member>未定義の配列のキーを読み取ろうとした場合</member>
+       <member>オブジェクトでない値のプロパティを読み取ろうとした場合</member>
+       <member>配列でない値のインデックスにアクセスしようとした場合</member>
+       <member>配列を文字列に変換しようとした場合</member>
+       <member>リソースを配列のキーとして使おうとした場合</member>
+       <member>null や bool 値や float の値を文字列オフセットとして使おうとした場合</member>
+       <member>境界を超えて文字列のオフセットを読み取ろうとした場合</member>
+       <member>文字列のオフセットに空文字列を割り当てようとした場合</member>
       </simplelist>
       <!-- RFC: https://wiki.php.net/rfc/engine_warnings -->
      </para>
@@ -343,33 +347,40 @@
     </listitem>
     <listitem>
      <para>
-      Unexpected characters in source files (such as NUL bytes outside of strings) will now result in a
-      <classname>ParseError</classname> exception instead of a compile warning.
+      ソースファイル中に(文字列の範囲外のNUL バイトのような)
+      想定外の文字が含まれていた場合、
+      コンパイル時に警告を出す代わりに、
+      <classname>ParseError</classname> がスローされるようになりました。
      </para>
     </listitem>
     <listitem>
      <para>
-      Uncaught exceptions now go through "clean shutdown", which means that destructors will be called
-      after an uncaught exception.
+      例外がキャッチされなかった場合、
+      "クリーンなシャットダウン" が行われます。
+      これは、例外がキャッチされなかった後、
+      デストラクタが呼ばれるということです。
      </para>
     </listitem>
     <listitem>
      <para>
-      The compile time fatal error "Only variables can be passed by reference" has been delayed until
-      runtime, and converted into an "Argument cannot be passed by reference"
-      <classname>Error</classname> exception.
+      コンパイル時の致命的なエラー
+      "Only variables can be passed by reference" は、
+      実行時まで遅延され、
+      "Argument cannot be passed by reference"
+      という <classname>Error</classname> 例外に変換されるようになりました。
      </para>
     </listitem>
     <listitem>
      <para>
-      Some "Only variables should be passed by reference" notices have been converted to "Argument
-      cannot be passed by reference" exception.
+      "Only variables should be passed by reference" という警告は、
+      "Argument cannot be passed by reference"
+      という例外に変換されるようになりました。
      </para>
     </listitem>
     <listitem>
      <para>
-      The generated name for anonymous classes has changed. It will now include the name of the first
-      parent or interface:
+      無名クラスのために生成される名前が変更されました。
+      最初の親クラスやインターフェイスの名前が含まれるようになっています:
      </para>
      <para>
       <programlisting role="php">
@@ -386,13 +397,14 @@
       </programlisting>
      </para>
      <para>
-      The name shown above is still followed by a NUL byte and a unique suffix.
+      上で示した名前の後に、NULバイトやユニークなサフィックスが続きます。
      </para>
     </listitem>
     <listitem>
      <para>
-      Non-absolute trait method references in trait alias adaptations are now required to be
-      unambiguous:
+      トレイトのエイリアス調整において、
+      クラス名を指定していないメソッド参照は、
+      曖昧でないことが必須になりました:
      </para>
      <para>
       <programlisting role="php">
@@ -409,16 +421,21 @@
       </programlisting>
      </para>
      <para>
-      If both <code>T1::func()</code> and <code>T2::func()</code> exist, this code was previously
-      silently accepted, and func was assumed to refer to <code>T1::func</code>. Now it will generate a
-      fatal error instead, and either <code>T1::func</code> or <code>T2::func</code> needs to be
-      written explicitly.
+      <code>T1::func()</code> と <code>T2::func()</code>
+      が両方存在している場合、
+      PHP 8.0.0 より前のバージョンでは、
+      このコードは黙って動作し、func は
+      <code>T1::func</code> を参照するものと想定されていました。
+      PHP 8.0.0 からは、このコードは致命的なエラーが発生します。
+      <code>T1::func</code> または <code>T2::func</code>
+      を明示的に書く必要があります。
      </para>
     </listitem>
     <listitem>
      <para>
-      The signature of abstract methods defined in traits is now checked against the implementing class
-      method:
+      トレイトで定義される抽象メソッドのシグナチャは
+      それぞ実装するクラスのメソッド側で、
+      一致しているかがチェックされるようになりました:
      </para>
      <para>
       <programlisting role="php">
@@ -431,7 +448,7 @@
 class MyClass {
     use MyTrait;

-    // Error, because of return type mismatch.
+    // エラー。戻り値の型が一致しません。
     private function neededByTrait(): int { return 42; }
 }
 ?>
@@ -455,25 +472,31 @@
     </listitem>
     <listitem>
      <para>
-      The arithmetic and bitwise operators <literal>+</literal>, <literal>-</literal>,
-      <literal>*</literal>, <literal>/</literal>, <literal>**</literal>, <literal>%</literal>,
-      <literal>&lt;&lt;</literal>, <literal>&gt;&gt;</literal>, <literal>&amp;</literal>,
-      <literal>|</literal>, <literal>^</literal>, <literal>~</literal>, <literal>++</literal>,
-      <literal>--</literal> will now consistently throw a <classname>TypeError</classname> when one of
-      the operands is an &array;, &resource; or non-overloaded &object;. The only exception to this is
-      the array <literal>+</literal> array merge operation, which remains supported.
+      算術演算子とビット演算子
+      <literal>+</literal>, <literal>-</literal>,
+      <literal>*</literal>, <literal>/</literal>,
+      <literal>**</literal>, <literal>%</literal>,
+      <literal>&lt;&lt;</literal>, <literal>&gt;&gt;</literal>,
+      <literal>&amp;</literal>,
+      <literal>|</literal>, <literal>^</literal>,
+      <literal>~</literal>, <literal>++</literal>,
+      <literal>--</literal> は、オペランドのひとつが配列だったり、
+      &resource; だったり、オーバーロードされた &object; でない場合に
+      一貫して
+      <classname>TypeError</classname> をスローするようになりました。
+      これに対する唯一の例外は、配列と配列を
+      <literal>+</literal> でマージする操作で、
+      これはまだサポートされています。
       <!-- RFC: https://wiki.php.net/rfc/arithmetic_operator_type_checks -->
      </para>
     </listitem>
     <listitem>
      <para>
-      Float to string casting will now always behave locale-independently.
       float 型から文字列型へのキャストは、
       ロケールに依存しないように常に振る舞うようになります。
-
      </para>
      <para>
-      <programlisting>
+      <programlisting role="php">
 <![CDATA[
 <?php
 setlocale(LC_ALL, "de_DE");
@@ -486,8 +509,9 @@
       </programlisting>
      </para>
      <para>
-      See <function>printf</function>, <function>number_format</function> and
-      <methodname>NumberFormatter</methodname> for ways to customize number formatting.
+      数値のフォーマットをカスタマイズする方法については、
+      <function>printf</function>, <function>number_format</function> 関数
+      および <methodname>NumberFormatter</methodname> メソッドを参照して下さい。
       <!-- RFC: https://wiki.php.net/rfc/locale_independent_float_to_string -->
      </para>
     </listitem>
@@ -497,7 +521,7 @@
       オフセットを指定してアクセスするための波括弧のサポートが削除されました。
      </para>
      <para>
-      <programlisting>
+      <programlisting role="php">
 <![CDATA[
 <?php
 // 以下ではなく:
@@ -521,17 +545,22 @@
     </listitem>
     <listitem>
      <para>
-      If an object constructor <function>exit</function>s, the object destructor will no longer be
-      called. This matches the behavior when the constructor throws.
+      オブジェクトのコンストラクタで
+      <function>exit</function> が呼び出された場合、
+      オブジェクトのデストラクタはコールされなくなりました。
+      これは、コンストラクタが例外を投げたときの振る舞いと一致します。
      </para>
     </listitem>
     <listitem>
      <para>
-      Namespaced names can no longer contain whitespace: While <code>Foo\Bar</code> will be recognized
-      as a namespaced name, <code>Foo \ Bar</code> will not. Conversely, reserved keywords are now
-      permitted as namespace segments, which may also change the interpretation of code:
-      <code>new\x</code> is now the same as <code>constant('new\x')</code>, not
-      <code>new \x()</code>.
+      名前空間に含まれる名前には、
+      ホワイトスペースを含めることができなくなりました。
+      つまり、<code>Foo\Bar</code> は名前空間の名前として認識されますが
+      <code>Foo \ Bar</code> は認識されなくなったということです。
+      逆に、予約語のキーワードは名前空間の一部として許されるようになりました。
+      これによって、コードの解釈が変わるかもしれません。
+      <code>new\x</code> は <code>constant('new\x')</code> と同じですが、
+      <code>new \x()</code> とは異なります。
       <!-- RFC: https://wiki.php.net/rfc/namespaced_names_as_token -->
      </para>
     </listitem>
@@ -543,50 +572,62 @@
     </listitem>
     <listitem>
      <para>
-      <function>debug_backtrace</function> and <methodname>Exception::getTrace</methodname> will no
-      longer provide references to arguments. It will not be possible to change function arguments
-      through the backtrace.
+      <function>debug_backtrace</function> と
+      <methodname>Exception::getTrace</methodname> メソッド
+      は、引数にリファレンスを取らなくなりました。
+      これにより、バックトレースを通じて、関数の引数を変更できなくなります。
      </para>
     </listitem>
     <listitem>
      <para>
-      Numeric string handling has been altered to be more intuitive and less error-prone. Trailing
-      whitespace is now allowed in numeric strings for consistency with how leading whitespace is
-      treated. This mostly affects:
+      数値文字列の扱いが、より直感的で間違いにくいものに変更されました。
+      ホワイトスペースが前に付いている場合の扱いと一貫性を持たせるため、
+      数値文字列の後にホワイトスペースを付けることが許されるようになりました。
+      これがもっとも影響するのは以下です:
      </para>
      <para>
       <simplelist>
-       <member>The <function>is_numeric</function> function</member>
-       <member>String-to-string comparisons</member>
-       <member>Type declarations</member>
-       <member>Increment and decrement operations</member>
+       <member><function>is_numeric</function> 関数</member>
+       <member>文字列同士の比較</member>
+       <member>型宣言</member>
+       <member>インクリメントとデクリメント演算</member>
       </simplelist>
      </para>
      <para>
-      The concept of a "leading-numeric string" has been mostly dropped; the cases where this remains
-      exist in order to ease migration. Strings which emitted an <constant>E_NOTICE</constant> "A non
-      well-formed numeric value encountered" will now emit an <constant>E_WARNING</constant> "A
-      non-numeric value encountered" and all strings which emitted an <constant>E_WARNING</constant> "A
-      non-numeric value encountered" will now throw a
-      <classname>TypeError</classname>. This mostly affects:
+      "数値が始めに来る文字列" の概念は殆どなくなっています;
+      このケースは、移行を容易にするために存在しています。
+
+      "A non well-formed numeric value encountered" という
+      <constant>E_NOTICE</constant> が発生する文字列
+      は、"A non-numeric value encountered" という
+      <constant>E_WARNING</constant> が発生するようになっています。
+      そして、"A non-numeric value encountered" という
+      <constant>E_WARNING</constant> が発生していた全ての文字列は、
+      <classname>TypeError</classname> が発生するようになりました。
+
+      これが最も影響するのは、以下の場合です:
      </para>
      <para>
       <simplelist>
-       <member>Arithmetic operations</member>
-       <member>Bitwise operations</member>
+       <member>代数演算</member>
+       <member>ビット演算</member>
       </simplelist>
      </para>
      <para>
-      This <constant>E_WARNING</constant> to <classname>TypeError</classname> change also affects the
-      <constant>E_WARNING</constant> "Illegal string offset 'string'" for illegal string offsets. The
-      behavior of explicit casts to int/float from strings has not been changed.
+      この <constant>E_WARNING</constant> から
+      <classname>TypeError</classname> への変更は、
+      不正な文字列オフセットの場合に発生する
+      "Illegal string offset 'string'" という <constant>E_WARNING</constant>
+      にも影響します。
+      文字列から int/float に明示的にキャストする場合の振る舞いは変更されていません
       <!-- RFC: https://wiki.php.net/rfc/saner-numeric-strings -->
      </para>
     </listitem>
     <listitem>
      <para>
-      Magic Methods will now have their arguments and return types checked if they have them declared.
-      The signatures should match the following list:
+      マジックメソッドは引数と戻り値の型を持ち、
+      宣言された場合はチェックが行われるようになりました。
+      シグナチャは次の一覧と一致させるべきです:
      </para>
      <para>
       <simplelist>
@@ -610,16 +651,20 @@
     </listitem>
     <listitem>
      <para>
-      <function>call_user_func_array</function> array keys will now be interpreted as parameter names,
-      instead of being silently ignored.
+      <function>call_user_func_array</function> 関数に渡される
+      配列のキーは、引数名として解釈されるようになりました。
+      これより前のバージョンでは、静かに無視されていました。
      </para>
     </listitem>
     <listitem>
      <para>
-      Declaring a function called <literal>assert()</literal> inside a namespace is
-      no longer allowed, and issues <constant>E_COMPILE_ERROR</constant>.
-      The <function>assert</function> function is subject to special handling by the engine,
-      which may lead to inconsistent behavior when defining a namespaced function with the same name.
+      名前空間の内部で <literal>assert()</literal> と呼ばれる関数を宣言する
+      ことは許されなくなり、
+      <constant>E_COMPILE_ERROR</constant> が発生するようになりました。
+      <function>assert</function> 関数は
+      PHP エンジンによって特別扱いを受けることになっているので、
+      名前空間の内部で同じ名前が定義されていると、
+      動作が一貫しなくなる原因になるからです。
      </para>
     </listitem>
    </itemizedlist>
@@ -630,85 +675,105 @@
   <title>リソースからオブジェクトへの移行</title>

   <para>
-   Several &resource;s have been migrated to &object;s.
-   Return value checks using <function>is_resource</function> should be replaced with checks for &false;.
+   いくつかの &resource; が、&object; に移行しました。
+   <function>is_resource</function> 関数を使って戻り値をチェックしているコードは、
+   &false; を返すことをチェックするコードに置き換えるべきです。
   </para>
   <itemizedlist>
     <listitem>
      <para>
-      <function>curl_init</function> will now return a <classname>CurlHandle</classname> object rather
-      than a &resource;. The <function>curl_close</function> function no longer has an effect,
-      instead the <classname>CurlHandle</classname> instance is automatically destroyed if it is no
-      longer referenced.
+      <function>curl_init</function> 関数は
+      &resource; ではなく、<classname>CurlHandle</classname>
+      オブジェクトを返すようになりました。
+      <function>curl_close</function> 関数はもはや意味をなしません。
+      <classname>CurlHandle</classname> インスタンスは、
+      参照されなくなった場合に、自動的に破棄されます。
      </para>
     </listitem>
     <listitem>
      <para>
-      <function>curl_multi_init</function> will now return a <classname>CurlMultiHandle</classname>
-      object rather than a &resource;. The <function>curl_multi_close</function> function no
-      longer has an effect, instead the <classname>CurlMultiHandle</classname> instance is
-      automatically destroyed if it is no longer referenced.
+      <function>curl_multi_init</function> 関数は
+      &resource; ではなく、<classname>CurlMultiHandle</classname>
+      オブジェクトを返すようになりました。
+      <function>curl_multi_close</function> 関数はもはや意味をなしません。
+      <classname>CurlMultiHandle</classname> インスタンスは、
+      参照されなくなった場合に、自動的に破棄されます。
      </para>
     </listitem>
     <listitem>
      <para>
-      <function>curl_share_init</function> will now return a <classname>CurlShareHandle</classname>
-      object rather than a &resource;. The <function>curl_share_close</function> function no
-      longer has an effect, instead the <classname>CurlShareHandle</classname> instance is
-      automatically destroyed if it is no longer referenced.
+      <function>curl_share_init</function> 関数は
+      &resource; ではなく、<classname>CurlShareHandle</classname>
+      オブジェクトを返すようになりました。
+      <function>curl_share_close</function> 関数はもはや意味をなしません。
+      <classname>CurlShareHandle</classname> インスタンスは、
+      参照されなくなった場合に、自動的に破棄されます。
      </para>
     </listitem>
    <listitem>
     <para>
-     <function>enchant_broker_init</function> will now return an <classname>EnchantBroker</classname>
-     object rather than a &resource;.
+     <function>enchant_broker_init</function> 関数は
+     &resource; ではなく、<classname>EnchantBroker</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>enchant_broker_request_dict</function> and
-     <function>enchant_broker_request_pwl_dict</function> will now return an
-     <classname>EnchantDictionary</classname> object rather than a &resource;.
+     <function>enchant_broker_request_dict</function> と
+     <function>enchant_broker_request_pwl_dict</function> 関数は
+     &resource; ではなく、<classname>EnchantDictionary</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The GD extension now uses <classname>GdImage</classname> objects as the underlying data structure
-     for images, rather than &resource;s.
-     The <function>imagedestroy</function> function no longer has an effect; instead the
-     <classname>GdImage</classname> instance is automatically destroyed if it is no longer referenced.
+     GD 拡張機能は 画像の基本的なデータ構造として
+     &resource; ではなく、<classname>GdImage</classname>
+     オブジェクトを使うようになりました。
+     <function>imagedestroy</function> 関数はもはや意味をなしません。
+     <classname>GdImage</classname> インスタンスは、
+     参照されなくなった場合に、自動的に破棄されます。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>openssl_x509_read</function> and <function>openssl_csr_sign</function> will now return
-     an <classname>OpenSSLCertificate</classname> object rather than a &resource;.
-     The <function>openssl_x509_free</function> function is deprecated and no longer has an effect,
-     instead the <classname>OpenSSLCertificate</classname> instance is automatically destroyed if it
-     is no longer referenced.
+     <function>openssl_x509_read</function> と
+     <function>openssl_csr_sign</function> 関数は
+     &resource; ではなく、<classname>OpenSSLCertificate</classname>
+     オブジェクトを返すようになりました。
+     <function>openssl_x509_free</function> 関数は非推奨となり、
+     もはや意味をなしません。
+     <classname>OpenSSLCertificate</classname> インスタンスは、
+     参照されなくなった場合に、自動的に破棄されます。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>openssl_csr_new</function> will now return an
-     <classname>OpenSSLCertificateSigningRequest</classname> object rather than a &resource;.
+     <function>openssl_csr_new</function> 関数は
+     &resource; ではなく、<classname>OpenSSLCertificateSigningRequest</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>openssl_pkey_new</function> will now return an
-     <classname>OpenSSLAsymmetricKey</classname> object rather than a &resource;.
-     The <function>openssl_pkey_free</function> function is deprecated and no longer has an effect,
-     instead the <classname>OpenSSLAsymmetricKey</classname> instance is automatically destroyed if it
-     is no longer referenced.
+     <function>openssl_pkey_new</function> 関数は
+     &resource; ではなく、<classname>OpenSSLAsymmetricKey</classname>
+     オブジェクトを返すようになりました。
+     <function>openssl_pkey_free</function> 関数は非推奨となり、
+     もはや意味をなしません。
+     <classname>OpenSSLAsymmetricKey</classname> インスタンスは、
+     参照されなくなった場合に、自動的に破棄されます。
     </para>
    </listitem>
    <listitem>
      <para>
-      <function>shmop_open</function> will now return a <classname>Shmop</classname> object rather than
-      a &resource;. The <function>shmop_close</function> function no longer has an effect, and is
-      deprecated; instead the <classname>Shmop</classname> instance is automatically destroyed if it is
-      no longer referenced.
+      <function>shmop_open</function> 関数は
+      &resource; ではなく、<classname>Shmop</classname>
+      オブジェクトを返すようになりました。
+      <function>shmop_close</function> 関数は非推奨となり、
+      もはや意味をなしません。
+      <classname>Shmop</classname> インスタンスは、
+      参照されなくなった場合に、自動的に破棄されます。
      </para>
     </listitem>
    <listitem>
@@ -715,55 +780,66 @@
     <para>
      <function>socket_create</function>, <function>socket_create_listen</function>,
      <function>socket_accept</function>, <function>socket_import_stream</function>,
-     <function>socket_addrinfo_connect</function>, <function>socket_addrinfo_bind</function>, and
-     <function>socket_wsaprotocol_info_import</function> will now return a
-     <classname>Socket</classname> object rather than a &resource;.
-     <function>socket_addrinfo_lookup</function> will now return an array of
-     <classname>AddressInfo</classname> objects rather than &resource;s.
+     <function>socket_addrinfo_connect</function>, <function>socket_addrinfo_bind</function>,
+     <function>socket_wsaprotocol_info_import</function> 関数は
+     &resource; ではなく、<classname>Socket</classname>
+     オブジェクトを返すようになりました。
+     <function>socket_addrinfo_lookup</function> 関数は
+     &resource; ではなく、<classname>AddressInfo</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>msg_get_queue</function> will now return an <classname>SysvMessageQueue</classname>
-     object rather than a &resource;.
+     <function>msg_get_queue</function> 関数は
+     &resource; ではなく、<classname>SysvMessageQueue</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>sem_get</function> will now return an <classname>SysvSemaphore</classname> object
-     rather than a &resource;.
+     <function>sem_get</function> 関数は
+     &resource; ではなく、<classname>SysvSemaphore</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>shm_attach</function> will now return an <classname>SysvSharedMemory</classname> object
-     rather than a &resource;.
+     <function>shm_attach</function> 関数は
+     &resource; ではなく、<classname>SysvSharedMemory</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>xml_parser_create</function> and <function>xml_parser_create_ns</function> will now
-     return an <classname>XmlParser</classname> object rather than a &resource;. The
-     <function>xml_parser_free</function> function no longer has an effect, instead the XmlParser
-     instance is automatically destroyed if it is no longer referenced.
+     <function>xml_parser_create</function> と
+     <function>xml_parser_create_ns</function> 関数は
+     &resource; ではなく、<classname>XmlParser</classname>
+     オブジェクトを返すようになりました。
+     <function>xml_parser_free</function> 関数はもはや意味をなしません。
+     XmlParser インスタンスは、
+     参照されなくなった場合に、自動的に破棄されます。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <link linkend="ref.xmlwriter">XMLWriter functions</link> now accept and return, respectively,
-     <classname>XMLWriter</classname> objects instead of &resource;s.
+     <link linkend="ref.xmlwriter">XMLWriter 関数</link> は
+     &resource; ではなく、<classname>XMLWriter</classname>
+     オブジェクトを受け入れ、返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>inflate_init</function> will now return an <classname>InflateContext</classname> object
-     rather than a &resource;.
+     <function>inflate_init</function> 関数は
+     &resource; ではなく、<classname>InflateContext</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>deflate_init</function> will now return a <classname>DeflateContext</classname> object
-     rather than a &resource;.
+     <function>deflate_init</function> 関数は
+     &resource; ではなく、<classname>DeflateContext</classname>
+     オブジェクトを返すようになりました。
     </para>
    </listitem>
   </itemizedlist>
@@ -770,14 +846,16 @@
  </sect2>

  <sect2 xml:id="migration80.incompatible.com">
-  <title>COM and .Net (Windows)</title>
+  <title>COM および .Net (Windows)</title>

   <para>
-   The ability to import case-insensitive constants from type libraries has been removed.
-   The second argument to <function>com_load_typelib</function> may no longer be false;
-   <link linkend="ini.com.autoregister-casesensitive">com.autoregister_casesensitive</link>
-   may no longer be disabled; case-insensitive markers in
-   <link linkend="ini.com.typelib-file">com.typelib_file</link> are ignored.
+   タイプライブラリ から
+   大文字小文字を区別せずに定数をインポートする機能は削除されました。
+   <function>com_load_typelib</function> 関数の第二引数は
+   もはや &false; ではありません。
+   <link linkend="ini.com.autoregister-casesensitive">com.autoregister_casesensitive</link> はもはや無効ではなくなりました。
+   つまり、<link linkend="ini.com.typelib-file">com.typelib_file</link>
+   の #case_insensitive マーカーは無視されます。
   </para>
  </sect2>

@@ -785,18 +863,23 @@
   <title>CURL</title>

   <para>
-   <constant>CURLOPT_POSTFIELDS</constant> no longer accepts objects as arrays. To
-   interpret an object as an array, perform an explicit <code>(array)</code> cast. The
-   same applies to other options accepting arrays as well.
+   <constant>CURLOPT_POSTFIELDS</constant> は、
+   オブジェクトを配列として受け入れなくなりました。
+   オブジェクトを配列として解釈させるためには、
+   明示的に <code>(array)</code> キャストを行って下さい。
+   配列を受け入れる他のオプションにも、同じことが当てはまります。
   </para>
  </sect2>

  <sect2 xml:id="migration80.incompatible.datetime">
-  <title>Date and Time</title>
+  <title>日付と時刻</title>

   <para>
-   <function>mktime</function> and <function>gmmktime</function> now require at least one
-   argument. <function>time</function> can be used to get the current timestamp.
+   <function>mktime</function> と
+   <function>gmmktime</function> 関数は
+   少なくともひとつ引数が必要になりました。
+   現在のタイムスタンプを取得する用途には
+   <function>time</function> 関数が使えます。
   </para>
  </sect2>

@@ -804,9 +887,9 @@
   <title>DOM</title>

   <para>
-   Unimplemented classes from the DOM extension that had no behavior and contained test
-   data have been removed. These classes have also been removed in the latest version of
-   the DOM standard:
+   DOM 拡張機能で実装されておらず、振る舞いも持たず、
+   テストデータもないクラスが削除されました。
+   これらのクラスは、最新のDOM標準からも削除されています:
   </para>
   <para>
    <simplelist>
@@ -829,8 +912,10 @@
   <itemizedlist>
    <listitem>
     <para>
-     <function>enchant_broker_list_dicts</function>, <function>enchant_broker_describe</function> and
-     <function>enchant_dict_suggest</function> will now return an empty array instead of &null;.
+     <function>enchant_broker_list_dicts</function>,
+     <function>enchant_broker_describe</function>,
+     <function>enchant_dict_suggest</function> 関数は、
+     &null; ではなく、空の配列を返すようになりました。
     </para>
    </listitem>
   </itemizedlist>
@@ -840,28 +925,30 @@
   <title>Exif</title>

   <para>
-   <function>read_exif_data</function> has been removed; <function>exif_read_data</function>
-   should be used instead.
+   <function>read_exif_data</function> 関数は削除されました。
+   <function>exif_read_data</function> 関数を代わりに使うべきです。
   </para>
  </sect2>

  <sect2 xml:id="migration80.incompatible.filter">
-  <title>Filter</title>
+  <title>フィルタ</title>

   <itemizedlist>
    <listitem>
     <para>
-     The <constant>FILTER_FLAG_SCHEME_REQUIRED</constant> and
-     <constant>FILTER_FLAG_HOST_REQUIRED</constant> flags for the
-     <constant>FILTER_VALIDATE_URL</constant> filter have been removed. The <literal>scheme</literal>
-     and <literal>host</literal> are (and have been) always required.
+     <constant>FILTER_VALIDATE_URL</constant>  フラグのための定数
+     <constant>FILTER_FLAG_SCHEME_REQUIRED</constant> と
+     <constant>FILTER_FLAG_HOST_REQUIRED</constant> が削除されました。
+     <literal>scheme</literal>
+     と <literal>host</literal> は(かつてもそうでしたが) 常に必須です。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <constant>INPUT_REQUEST</constant> and <constant>INPUT_SESSION</constant> source for
-     <function>filter_input</function> etc. have been removed. These were never implemented and their
-     use always generated a warning.
+     <function>filter_input</function> 関数などで使われている定数
+     <constant>INPUT_REQUEST</constant> と <constant>INPUT_SESSION</constant>
+     は削除されました。
+     これらは実装されたことがなく、使うと常に警告が発生していました。
     </para>
    </listitem>
   </itemizedlist>
@@ -873,21 +960,24 @@
   <itemizedlist>
    <listitem>
     <para>
-     The deprecated functions <function>image2wbmp</function> has been removed.
+     推奨されなくなっていた <function>image2wbmp</function> 関数は削除されました。
      <!-- RFC: https://wiki.php.net/rfc/image2wbmp -->
     </para>
    </listitem>
    <listitem>
     <para>
-     The deprecated functions <function>png2wbmp</function> and <function>jpeg2wbmp</function> have
-     been removed.
+     推奨されなくなっていた関数
+     <function>png2wbmp</function> と <function>jpeg2wbmp</function>
+     が削除されました。
      <!-- RFC: https://wiki.php.net/rfc/deprecate-png-jpeg-2wbmp -->
     </para>
    </listitem>
    <listitem>
     <para>
-     The default <parameter>mode</parameter> parameter of <function>imagecropauto</function> no longer
-     accepts <literal>-1</literal>. <constant>IMG_CROP_DEFAULT</constant> should be used instead.
+     <function>imagecropauto</function> 関数の
+     <parameter>mode</parameter> 引数のデフォルトは
+     <literal>-1</literal> ではなくなりました。
+     <constant>IMG_CROP_DEFAULT</constant> を代わりに使うべきです。
     </para>
    </listitem>
    <listitem>
@@ -902,8 +992,9 @@
   <title>GMP</title>

   <para>
-   <function>gmp_random</function> has been removed. One of <function>gmp_random_range</function> or
-   <function>gmp_random_bits</function> should be used instead.
+   <function>gmp_random</function> 関数は削除されました。
+   <function>gmp_random_range</function> や
+   <function>gmp_random_bits</function> 関数を代わりに使うべきです。
   </para>
  </sect2>

@@ -911,8 +1002,9 @@
   <title>Iconv</title>

   <para>
-   iconv implementations which do not properly set <varname>errno</varname> in case of errors are no
-   longer supported.
+   エラーが発生した時に
+   <varname>errno</varname> を適切に設定していなかった
+   iconv の実装はもはやサポートされなくなりました。
   </para>
  </sect2>

@@ -922,14 +1014,14 @@
   <itemizedlist>
    <listitem>
     <para>
-     The unused <parameter>default_host</parameter> argument of <function>imap_headerinfo</function>
-     has been removed.
+     <function>imap_headerinfo</function> 関数で
+     未使用になっていた <parameter>default_host</parameter> 引数が削除されました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <function>imap_header</function> function which is an alias of
-     <function>imap_headerinfo</function> has been removed.
+     <function>imap_headerinfo</function> 関数のエイリアスだった
+     <function>imap_header</function> 関数は削除されました。
     </para>
    </listitem>
   </itemizedlist>
@@ -936,18 +1028,20 @@
  </sect2>

  <sect2 xml:id="migration80.incompatible.intl">
-  <title>Internationalization Functions</title>
+  <title>国際化関数</title>

   <itemizedlist>
    <listitem>
     <para>
-     The deprecated constant <constant>INTL_IDNA_VARIANT_2003</constant> has been removed.
+     推奨されなくなっていた定数
+     <constant>INTL_IDNA_VARIANT_2003</constant> が削除されました。
      <!-- RFC: https://wiki.php.net/rfc/deprecate-and-remove-intl_idna_variant_2003 -->
     </para>
    </listitem>
    <listitem>
    <para>
-    The deprecated <constant>Normalizer::NONE</constant> constant has been removed.
+    推奨されなくなっていた定数
+    <constant>Normalizer::NONE</constant> が削除されました。
    </para>
    </listitem>
   </itemizedlist>
@@ -959,16 +1053,17 @@
   <itemizedlist>
    <listitem>
    <para>
-    The deprecated functions <function>ldap_sort</function>,
-    <function>ldap_control_paged_result</function> and
-    <function>ldap_control_paged_result_response</function> have been removed.
+    推奨されなくなっていた関数
+    <function>ldap_sort</function>,
+    <function>ldap_control_paged_result</function>,
+    <function>ldap_control_paged_result_response</function> は削除されました。
    </para>
   </listitem>
   <listitem>
    <para>
-    The interface of <function>ldap_set_rebind_proc</function> has changed; the
-    <parameter>callback</parameter> parameter does not accept empty strings anymore; &null; should be
-    used instead.
+    <function>ldap_set_rebind_proc</function> のインターフェイスが変更されました。
+    <parameter>callback</parameter> 引数は空文字列を受け入れなくなりました。
+    &null; を代わりに使うべきです。
    </para>
    </listitem>
   </itemizedlist>
@@ -975,28 +1070,33 @@
  </sect2>

  <sect2 xml:id="migration80.incompatible.mbstring">
-  <title>MBString</title>
+  <title>マルチバイト文字列</title>

   <itemizedlist>
    <listitem>
     <para>
-     The <link linkend="ini.mbstring.func-overload">mbstring.func_overload</link> directive has been
-     removed. The related <constant>MB_OVERLOAD_MAIL</constant>,
-     <constant>MB_OVERLOAD_STRING</constant>, and <constant>MB_OVERLOAD_REGEX</constant> constants
-     have also been removed. Finally, the <literal>"func_overload"</literal> and
-     <literal>"func_overload_list"</literal> entries in <function>mb_get_info</function> have been
-     removed.
+     INI ディレクティブ
+     <link linkend="ini.mbstring.func-overload">mbstring.func_overload</link>
+     は削除されました。
+     関連する定数
+     <constant>MB_OVERLOAD_MAIL</constant>,
+     <constant>MB_OVERLOAD_STRING</constant>,
+     <constant>MB_OVERLOAD_REGEX</constant> も削除されています。
+     <function>mb_get_info</function> 関数の
+     <literal>"func_overload"</literal> と
+     <literal>"func_overload_list"</literal> エントリも削除されています。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>mb_parse_str</function> can no longer be used without specifying a result array.
+     <function>mb_parse_str</function> は、
+     結果の配列を指定しないと使えなくなりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     A number of deprecated mbregex aliases have been removed. See the following
-     list for which functions should be used instead:
+     たくさんの mbregex の関数エイリアスが削除されました。
+     どの関数を代わりに使うべきなのかは、以下の一覧を参照して下さい:
     </para>
     <para>
      <simplelist>
@@ -1019,53 +1119,65 @@
    </listitem>
    <listitem>
     <para>
-     The <literal>e</literal> modifier for <function>mb_ereg_replace</function> has been removed.
-     <function>mb_ereg_replace_callback</function> should be used instead.
+     <function>mb_ereg_replace</function> 関数の
+     <literal>e</literal> 修正子が削除されました。
+     <function>mb_ereg_replace_callback</function> 関数を代わりに使って下さい。
     </para>
    </listitem>
    <listitem>
     <para>
-     A non-string pattern argument to <function>mb_ereg_replace</function> will now be interpreted as
-     a string instead of an ASCII codepoint. The previous behavior may be restored with an explicit
-     call to <function>chr</function>.
+     <function>mb_ereg_replace</function> 関数に文字列でないパターン引数を渡すと、
+     ASCII コードポイントではなく、文字列として解釈されるようになりました。
+     以前のバージョンの振る舞いは、
+     明示的に <function>chr</function> 関数を呼び出すことで復元できます。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <parameter>needle</parameter> argument for <function>mb_strpos</function>,
+     <function>mb_strpos</function>,
      <function>mb_strrpos</function>, <function>mb_stripos</function>,
      <function>mb_strripos</function>, <function>mb_strstr</function>,
-     <function>mb_stristr</function>, <function>mb_strrchr</function> and
-     <function>mb_strrichr</function> can now be empty.
+     <function>mb_stristr</function>, <function>mb_strrchr</function>,
+     <function>mb_strrichr</function> 関数の
+     <parameter>needle</parameter> 引数は、空に出来るようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <parameter>is_hex</parameter> parameter, which was not used internally, has been removed from
-     <function>mb_decode_numericentity</function>.
+     <function>mb_decode_numericentity</function>
+     関数で内部的に使われていなかった
+     引数 <parameter>is_hex</parameter> は削除されました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The legacy behavior of passing the encoding as the third argument instead of an offset for the
-     <function>mb_strrpos</function> function has been removed; an explicit <literal>0</literal>
-     offset with the encoding should be provided as the fourth argument instead.
+     <function>mb_strrpos</function> 関数の第三引数に、
+     オフセットではなくエンコーディングを渡していた古い振る舞いは削除されました。
+     明示的にオフセットに
+     <literal>0</literal> を渡し、
+     第四引数にエンコーディングを渡す方法を代わりに使うべきです。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <literal>ISO_8859-*</literal> character encoding aliases have been replaced by
-     <literal>ISO8859-*</literal> aliases for better interoperability with the iconv extension. The
-     mbregex ISO 8859 aliases with underscores (<literal>ISO_8859_*</literal> and
-     <literal>ISO8859_*</literal>) have also been removed.
+     文字エンコーディング <literal>ISO_8859-*</literal> のエイリアスは
+     <literal>ISO8859-*</literal> に置き換えられました。
+     これは、iconv 拡張機能と相互運用性を向上させるためです。
+     アンダースコア付きの mbregex の ISO 8859 aliases
+     (<literal>ISO_8859_*</literal> と <literal>ISO8859_*</literal>)
+     も削除されています。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>mb_ereg</function> and <function>mb_eregi</function> will now return boolean &true; on
-     a successfuly match. Previously they returned integer <literal>1</literal> if
-     <parameter>matches</parameter> was not passed, or <code>max(1, strlen($matches[0]))</code> if
-     <parameter>matches</parameter> was passed.
+     <function>mb_ereg</function> と
+     <function>mb_eregi</function> 関数は、
+     マッチに成功した場合に &true;  を返すようになりました。
+     これより前のバージョンでは、
+     <parameter>matches</parameter> が渡されなかった場合に
+     整数 <literal>1</literal> が返されていました。
+     <parameter>matches</parameter> が渡された場合には
+     <code>max(1, strlen($matches[0]))</code> が返されていました。
     </para>
    </listitem>
   </itemizedlist>
@@ -1077,20 +1189,23 @@
   <itemizedlist>
    <listitem>
     <para>
-     The <classname>OCI-Lob</classname> class is now called <classname>OCILob</classname>, and the
-     <classname>OCI-Collection</classname> class is now called <classname>OCICollection</classname>
-     for name compliance enforced by PHP 8 arginfo type annotation tooling.
+     <classname>OCI-Lob</classname> クラスは
+     <classname>OCILob</classname> と呼ばれるようになり、
+     <classname>OCI-Collection</classname> クラスは
+     <classname>OCICollection</classname> と呼ばれるようになりました。
+     これは、PHP 8 の arginfo 型アノテーションツールの
+     名前に関する規約で強制されたものです。
     </para>
    </listitem>
    <listitem>
     <para>
-     Several alias functions have been marked as deprecated.
+     いくつかの関数エイリアスが推奨されなくなりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>oci_internal_debug</function> and its alias <function>ociinternaldebug</function> have
-     been removed.
+     <function>oci_internal_debug</function> 関数と
+     そのエイリアス <function>ociinternaldebug</function> は削除されました。
     </para>
    </listitem>
   </itemizedlist>
@@ -1102,13 +1217,14 @@
   <itemizedlist>
    <listitem>
     <para>
-     <function>odbc_connect</function> no longer reuses connections.
+     <function>odbc_connect</function> 関数は
+     接続を使い回さなくなりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The unused <parameter>flags</parameter> parameter of <function>odbc_exec</function> has been
-     removed.
+     <function>odbc_exec</function> 関数で使われていなかった
+     <parameter>flags</parameter> 引数が削除されました。
     </para>
    </listitem>
   </itemizedlist>
@@ -1134,8 +1250,10 @@
   <title>正規表現 (Perl互換)</title>

   <para>
-   When passing invalid escape sequences they are no longer interpreted as literals. This behavior
-   previously required the <literal>X</literal> modifier – which is now ignored.
+   不正なエスケープシーケンスを渡した場合、
+   もはやリテラルと解釈されなくなりました。
+   リテラルと解釈する振る舞いは <literal>X</literal> 修正子で必須でしたが、
+   無視されるようになっています。
   </para>
  </sect2>

@@ -1180,21 +1298,25 @@
   <itemizedlist>
    <listitem>
     <para>
-     The deprecated <function>pg_connect</function> syntax using multiple parameters instead of a
-     connection string is no longer supported.
+     <function>pg_connect</function> 関数で
+     推奨されなくなっていた、
+     接続文字列の代わりに複数の引数を受け入れる文法は
+     もはやサポートされなくなりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The deprecated <function>pg_lo_import</function> and <function>pg_lo_export</function> signature
-     that passes the connection as the last argument is no longer supported. The connection should be
-     passed as first argument instead.
+     推奨されなくなっていた
+     <function>pg_lo_import</function> と
+     <function>pg_lo_export</function> 関数の、
+     最後の引数で接続を渡すシグナチャはサポートされなくなりました。
+     代わりに、接続は最初の引数で渡すべきです。
     </para>
    </listitem>
    <listitem>
     <para>
-     <function>pg_fetch_all</function> will now return an empty array instead of &false; for result
-     sets with zero rows.
+     <function>pg_fetch_all</function> 関数
+     は 結果セットの行が0行の場合に、&false; ではなくからの配列を返すようになりました。
     </para>
    </listitem>
   </itemizedlist>
@@ -1309,8 +1431,10 @@
    </listitem>
    <listitem>
     <para>
-     <methodname>SplHeap::compare</methodname> now specifies a method signature. Inheriting classes
-     implementing this method will now have to use a compatible method signature.
+     <methodname>SplHeap::compare</methodname>
+     はメソッドシグナチャを指定するようになりました。
+     このメソッドを実装する継承先のクラスは、
+     互換性のあるメソッドシグナチャを持たなければなりません。
     </para>
    </listitem>
    <listitem>
@@ -1331,16 +1455,25 @@
    </listitem>
    <listitem>
     <para>
-     <classname>SplFixedArray</classname> is now an <interfacename>IteratorAggregate</interfacename>
-     and not an <interfacename>Iterator</interfacename>.
-     <methodname>SplFixedArray::rewind</methodname>, <methodname>SplFixedArray::current</methodname>,
-     <methodname>SplFixedArray::key</methodname>, <methodname>SplFixedArray::next</methodname>, and
-     <methodname>SplFixedArray::valid</methodname> have been removed. In their place,
-     <methodname>SplFixedArray::getIterator</methodname> has been added. Any code which uses explicit
-     iteration over SplFixedArray must now obtain an
-     <interfacename>Iterator</interfacename> through
-     <methodname>SplFixedArray::getIterator</methodname>. This means that
-     <classname>SplFixedArray</classname> is now safe to use in nested loops.
+     <classname>SplFixedArray</classname> クラスは
+     <interfacename>Iterator</interfacename> ではなく
+     <interfacename>IteratorAggregate</interfacename> を実装しました。
+
+     <methodname>SplFixedArray::rewind</methodname>,
+     <methodname>SplFixedArray::current</methodname>,
+     <methodname>SplFixedArray::key</methodname>,
+     <methodname>SplFixedArray::next</methodname>,
+     <methodname>SplFixedArray::valid</methodname> は削除されました。
+
+     代わりとして、<methodname>SplFixedArray::getIterator</methodname>
+     が追加されました。
+
+     SplFixedArray を通じて明示的にイテレーションを行うあらゆるコードは、
+     <methodname>SplFixedArray::getIterator</methodname> メソッドを使い
+     <interfacename>Iterator</interfacename> を取得しなければなりません。
+
+     これは、<classname>SplFixedArray</classname>
+     がネストされたループ中で安全に使えるようになったということです。
     </para>
    </listitem>
   </itemizedlist>
@@ -1352,12 +1485,16 @@
   <itemizedlist>
    <listitem>
     <para>
-     <function>assert</function> will no longer evaluate string arguments, instead they will be
-     treated like any other argument. <code>assert($a == $b)</code> should be used instead of
-     <code>assert('$a == $b')</code>. The <link
-     linkend="ini.assert.quiet-eval">assert.quiet_eval</link> ini directive and the
-     <constant>ASSERT_QUIET_EVAL</constant> constant have also been removed, as they would no longer
-     have any effect.
+     <function>assert</function> 関数は
+     文字列の引数を評価しなくなりました。
+     代わりに、他の引数と同じように扱われます。
+     <code>assert('$a == $b')</code> ではなく
+     <code>assert($a == $b)</code> を使うべきです。
+
+     INI ディレクティブ <link
+     linkend="ini.assert.quiet-eval">assert.quiet_eval</link> と
+     定数 <constant>ASSERT_QUIET_EVAL</constant> も削除されました。
+     なぜなら、もはや何の効果も無いからです。
     </para>
    </listitem>
    <listitem>
@@ -1373,50 +1510,71 @@
    </listitem>
    <listitem>
     <para>
-     The <parameter>needle</parameter> argument of <function>strpos</function>,
-     <function>strrpos</function>, <function>stripos</function>, <function>strripos</function>,
-     <function>strstr</function>, <function>strchr</function>, <function>strrchr</function>, and
-     <function>stristr</function> will now always be interpreted as a string. Previously non-string
-     needles were interpreted as an ASCII code point. An explicit call to <function>chr</function> can
-     be used to restore the previous behavior.
+     <function>strpos</function>,
+     <function>strrpos</function>,
+     <function>stripos</function>,
+     <function>strripos</function>,
+     <function>strstr</function>,
+     <function>strchr</function>,
+     <function>strrchr</function>,
+     <function>stristr</function> 関数の
+     <parameter>needle</parameter>
+     引数は常に文字列として解釈されるようになりました。
+     これより前のバージョンでは、
+     文字列でない引数は ASCII コードポイントと解釈されていました。
+     <function>chr</function> 関数を明示的に呼ぶことで、
+     以前の振る舞いを復元できます。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <parameter>needle</parameter> argument for <function>strpos</function>,
-     <function>strrpos</function>, <function>stripos</function>, <function>strripos</function>,
-     <function>strstr</function>, <function>stristr</function> and <function>strrchr</function> can
-     now be empty.
+     <function>strpos</function>,
+     <function>strrpos</function>,
+     <function>stripos</function>,
+     <function>strripos</function>,
+     <function>strstr</function>,
+     <function>stristr</function>,
+     <function>strrchr</function> 関数の
+     <parameter>needle</parameter> 引数は、空に出来るようになりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <parameter>length</parameter> argument for <function>substr</function>,
-     <function>substr_count</function>, <function>substr_compare</function>, and
-     <function>iconv_substr</function> can now be &null;. &null; values will behave as if no length
-     argument was provided and will therefore return the remainder of the string instead of an empty
-     string.
+     <function>substr</function>,
+     <function>substr_count</function>,
+     <function>substr_compare</function>,
+     <function>iconv_substr</function> 関数の
+     <parameter>length</parameter> 引数は &null; も指定できるようになりました。
+     &null; を指定した場合、
+     length 引数が指定されなかったことと同じように振る舞います。
+     よって、この場合、空文字列ではなく、残りの文字列を返します。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <parameter>length</parameter> argument for <function>array_splice</function> can now be
-     &null;. &null; values will behave identically to omitting the argument, thus removing everything
-     from the <parameter>offset</parameter> to the end of the array.
+     <function>array_splice</function> 関数の
+     <parameter>length</parameter> 引数は &null; も指定できるようになりました。
+     &null; を指定した場合、引数を省略した場合と同じ振る舞いをします。
+     よって、<parameter>offset</parameter>
+     から配列の最後までの全ての要素を削除する動きになります。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <parameter>args</parameter> argument of <function>vsprintf</function>,
-     <function>vfprintf</function>, and <function>vprintf</function> must now be an array. Previously
-     any type was accepted.
+     <function>vsprintf</function>,
+     <function>vfprintf</function>,
+     <function>vprintf</function> 関数の
+     <parameter>args</parameter> 引数は、配列であることが必須になりました。
+     これより前のバージョンでは、あらゆる型の値を受け入れていました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The <literal>'salt'</literal> option of <function>password_hash</function> is no longer
-     supported. If the <literal>'salt'</literal> option is used a warning is generated, the provided
-     salt is ignored, and a generated salt is used instead.
+     <function>password_hash</function> 関数の
+     <literal>'salt'</literal> オプションはサポートされなくなりました。
+     <literal>'salt'</literal> オプションを使うと警告が生成され、
+     指定された salt は無視されます。
+     そして生成された salt が代わりに使われます。
     </para>
    </listitem>
    <listitem>
@@ -1471,41 +1629,58 @@
    </listitem>
    <listitem>
     <para>
-     <function>var_dump</function> and <function>debug_zval_dump</function> will now print
-     floating-point numbers using <link linkend="ini.serialize-precision">serialize_precision</link>
-     rather than <link linkend="ini.precision">precision</link>. In a default configuration, this
-     means that floating-point numbers are now printed with full accuracy by these debugging
-     functions.
+     <function>var_dump</function> と
+     <function>debug_zval_dump</function> 関数は
+     INIディレクティブ <link linkend="ini.precision">precision</link>
+     ではなく
+     <link linkend="ini.serialize-precision">serialize_precision</link>
+     を使って浮動小数点を印字するようになりました。
+     デフォルトの設定では、浮動小数点はこのデバッグ関数によって
+     全精度で印字されるようになるということです。
     </para>
    </listitem>
    <listitem>
     <para>
-     If the array returned by <link linkend="object.sleep">__sleep()</link> contains non-existing
-     properties, these are now silently ignored. Previously, such properties would have been
-     serialized as if they had the value &null;.
+     <link linkend="object.sleep">__sleep()</link> が返す
+     配列に存在しないプロパティが含まれていた場合、
+     静かに無視されるようになりました。
+     これより前のバージョンでは、
+     そうしたプロパティは値 &null; を持つかのようにシリアライズされていました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The default locale on startup is now always <literal>"C"</literal>. No locales are inherited from
-     the environment by default. Previously, <constant>LC_ALL</constant> was set to
-     <literal>"C"</literal>, while <constant>LC_CTYPE</constant> was inherited from the environment.
-     However, some functions did not respect the inherited locale without an explicit
-     <function>setlocale</function> call. An explicit <function>setlocale</function> call is now
-     always required if a locale component should be changed from the default.
+     デフォルトの起動時のロケールは、常に
+     <literal>"C"</literal> になりました。
+     デフォルトでは、どのロケールからも環境を継承しません。
+     これより前のバージョンでは、
+     <constant>LC_ALL</constant> は
+     <literal>"C"</literal> に設定されていましたが、
+     <constant>LC_CTYPE</constant> は環境から情報を継承していました。
+     しかしながら、関数によっては、明示的に
+     <function>setlocale</function> を呼び出さないと
+     継承した環境を尊重しないものもあります。
+     ロケールをデフォルトから変えるためには、
+     <function>setlocale</function> 関数を明示的に呼ぶことが常に必須になりました。
     </para>
    </listitem>
    <listitem>
     <para>
-     The deprecated DES fallback in <function>crypt</function> has been removed. If an unknown salt
-     format is passed to <function>crypt</function>, the function will fail with <literal>*0</literal>
-     instead of falling back to a weak DES hash now.
+     非推奨になっていた
+     <function>crypt</function> 関数が
+     DES にフォールバックする振る舞いが削除されました。
+     不明な salt フォーマットを <function>crypt</function> 関数に渡すと、
+     弱い DES ハッシュにフォールバックするのではなく、
+     <literal>*0</literal> という値になり、失敗するようになります。
     </para>
    </listitem>
    <listitem>
     <para>
-     Specifying out of range rounds for SHA256/SHA512 <function>crypt</function> will now fail with
-     <literal>*0</literal> instead of clamping to the closest limit. This matches glibc behavior.
+     <function>crypt</function> 関数に、
+     SHA256/SHA512 の範囲外の round を指定すると、
+     最も近い境界値に切り詰めるのではなく、
+     <literal>*0</literal> という値になり、失敗するようになりました。
+     これは、glibc の振る舞いと一致します。
     </para>
    </listitem>
    <listitem>
@@ -1515,18 +1690,27 @@
    </listitem>
    <listitem>
     <para>
-     Any functions accepting callbacks that are not explicitly specified to accept parameters by
-     reference will now warn if a callback with reference parameters is used. Examples include
-     <function>array_filter</function> and <function>array_reduce</function>. This was already the
-     case for most, but not all, functions previously.
+     コールバックを受け入れるあらゆる関数のうち、
+     リファレンスの引数を受け入れるように明示的に指定して「いない」
+     ものに対し、
+     リファレンスを使ったコールバックを渡すと警告が発生するようになりました。
+     例としては、
+     <function>array_filter</function> や
+     <function>array_reduce</function> 関数があります。
+     これらでほとんどの関数の例を示していますが、全てではありません。
     </para>
    </listitem>
    <listitem>
     <para>
-     The HTTP stream wrapper as used by functions like <function>file_get_contents</function>
-     now advertises HTTP/1.1 rather than HTTP/1.0 by default. This does not change the behavior of the
-     client, but may cause servers to respond differently. To retain the old behavior, set the
-     <literal>'protocol_version'</literal> stream context option, e.g.
+     <function>file_get_contents</function> 関数のように、
+     関数が使うHTTPストリームラッパーは、
+     デフォルトで HTTP/1.0 ではなく、
+     HTTP/1.1 を指定するようになりました。
+     これによって、クライアントの振る舞いが変わるわけではありませんが、
+     サーバが異なるレスポンスを返す可能性があります。
+     古い振る舞いをさせるには、
+     以下のようにして <literal>'protocol_version'</literal>
+     ストリームコンテキストオプションを設定して下さい。
     </para>
     <para>
      <programlisting role="php">
@@ -1611,19 +1795,28 @@
   <itemizedlist>
    <listitem>
     <para>
-     <literal>T_COMMENT</literal> tokens will no longer include a trailing newline. The newline will
-     instead be part of a following <literal>T_WHITESPACE</literal> token. It should be noted that
-     <literal>T_COMMENT</literal> is not always followed by whitespace, it may also be followed by
-     <literal>T_CLOSE_TAG</literal> or end-of-file.
+     <literal>T_COMMENT</literal> トークンは最後の改行文字を含まなくなりました。
+     改行文字はその後に続く
+     <literal>T_WHITESPACE</literal> トークンに含まれるようになります。
+     注意すべきなのは、
+     <literal>T_COMMENT</literal> の後にホワイトスペースが続くとは限らないことです。
+     <literal>T_CLOSE_TAG</literal> やファイルの終端が続く場合もありえます。
     </para>
    </listitem>
    <listitem>
     <para>
-     Namespaced names are now represented using the <literal>T_NAME_QUALIFIED</literal>
-     (<code>Foo\Bar</code>), <literal>T_NAME_FULLY_QUALIFIED</literal> (<code>\Foo\Bar</code>) and
-     <literal>T_NAME_RELATIVE</literal> (<code>namespace\Foo\Bar</code>) tokens.
-     <literal>T_NS_SEPARATOR</literal> is only used for standalone namespace separators, and only
-     syntactially valid in conjunction with group use declarations.
+     名前空間の中にある名前は、
+     <literal>T_NAME_QUALIFIED</literal>
+     (<code>Foo\Bar</code>),
+     <literal>T_NAME_FULLY_QUALIFIED</literal>
+     (<code>\Foo\Bar</code>),
+     <literal>T_NAME_RELATIVE</literal>
+     (<code>namespace\Foo\Bar</code>)
+     トークンを使って表現されるようになりました。
+
+     <literal>T_NS_SEPARATOR</literal> トークンは
+     単独の名前空間の区切り文字としてだけ使われます。
+     そして、グループ化されたuse宣言と一緒に使った場合にだけ文法的に合法です。
      <!-- RFC: https://wiki.php.net/rfc/namespaced_names_as_token -->
     </para>
    </listitem>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.