'PHP8.3は、PHP言語のメジャーアップデートです。クラス定数の型付け、読み取り専用プロパティのクローン、ランダム機能追加など、多くの新機能が含まれています。さらにパフォーマンスの向上、バグフィックス、コードのクリーンナップも行われました。',
'documentation' => 'ドキュメント',
'main_title' => 'Released!',
'main_subtitle' => 'PHP8.3は、PHP言語のメジャーアップデートです。
クラス定数の型付け、読み取り専用プロパティのクローン、ランダム機能追加など、多くの新機能が含まれています。さらにパフォーマンス向上、バグフィックス、コードのクリーンナップも行われました。',
'upgrade_now' => 'PHP8.3へのアップデートはこちら!',
'readonly_title' => '読み取り専用プロパティのディープクローン',
'readonly_description' => 'readonly
プロパティをクローンする際、__clone
メソッド内で一度だけプロパティを変更できるようになりました。',
'json_validate_title' => '関数json_validate()
の追加',
'json_validate_description' => '関数json_validate()
は、json_decode()
よりも効率的にJSONが正しい形式かをチェックすることができます。',
'typed_class_constants_title' => 'クラス定数の型付け',
'override_title' => 'アトリビュート#[\Override]
の追加',
'override_description' => 'メソッドにアトリビュート#[\Override]
を追加すると、親クラスもしくはインターフェイスに同じメソッドが定義されていることを確認します。これにより、メソッドを意図的にオーバーライドしていると明示することができ、また親メソッドが変更されたときに検出できます。',
'randomizer_getbytesfromstring_title' => 'メソッドRandomizer::getBytesFromString()
の追加',
'randomizer_getbytesfromstring_description' => 'PHP8.2で実装されたRandomエクステンションに、ランダム文字列を生成する新たなメソッドを追加しました。これにより、サブドメイン名などちょっとした文字列や任意長の数値型文字列などを容易に生成可能となります。',
'randomizer_getfloat_nextfloat_title' => 'メソッドRandomizer::getFloat()
とRandomizer::nextFloat()
の追加',
'randomizer_getfloat_nextfloat_description' => '
浮動小数点演算はその精度や丸め要素により、偏りのない乱数を生成することは比較的高難度であり、よく見られるユーザランド実装は結果が偏っていたり範囲外になっていたりすることがよくあります。
Randomizerエクステンションでは普遍的な浮動小数乱数を生成するために2つのメソッドが実装されました。Randomizer::getFloat()
はDrawing Random Floating-Point Numbers from an Interval. Frédéric Goualard・ACM Trans. Model. Comput. Simul.・32:3・2022.という論文で紹介されたγ-sectionというアルゴリズムで乱数を生成します。
コマンドラインLinterに複数のファイルを渡せるようになりました。
', 'new_classes_title' => '新しいクラス・インターフェイス・関数', 'new_dom' => 'DOMにDOMElement::getAttributeNames()
・DOMElement::insertAdjacentElement()
・DOMElement::insertAdjacentText()
・DOMElement::toggleAttribute()
・DOMNode::contains()
・DOMNode::getRootNode()
・DOMNode::isEqualNode()
・DOMNameSpaceNode::contains()
・DOMParentNode::replaceChildren()
メソッドが追加されました。',
'new_intl' => 'IntlにIntlCalendar::setDate()
・IntlCalendar::setDateTime()
・IntlGregorianCalendar::createFromDate()
・IntlGregorianCalendar::createFromDateTime()
が追加されました。',
'new_ldap' => 'LDAPにldap_connect_wallet()
・ldap_exop_sync()
が追加されました。',
'new_mb_str_pad' => 'マルチバイト文字列関数にmb_str_pad()
が追加されました。',
'new_posix' => 'POSIX関数にposix_sysconf()
・posix_pathconf()
・posix_fpathconf()
・posix_eaccess()
が追加されました。',
'new_reflection' => 'リフレクションにReflectionMethod::createFromMethodName()
が追加されました。',
'new_socket' => 'ソケットにsocket_atmark()
が追加されました。',
'new_str' => '文字列関数にstr_increment()
・str_decrement()
・stream_context_set_options()
が追加されました。',
'new_ziparchive' => 'Zip関数にZipArchive::getArchiveFlag()
が追加されました。',
'new_openssl_ec' => 'OpenSSLエクステンションがEC parameterによる鍵の生成に対応しました。',
'new_ini' => '最大スタックサイズを設定するINI設定zend.max_allowed_stack_size
が追加されました',
'ini_fallback' => 'iniファイルがデフォルト値を指定する構文に対応しました。',
'anonymous_readonly' => '無名クラスをreadonlyにすることができるようになりました。',
'bc_title' => '非推奨、および互換性のない変更',
'bc_datetime' => 'Date/Timeエクステンションの改善。',
'bc_arrays' => '配列を負数n
から始めた場合、次の自動採番は0
ではなくn + 1
になりました。',
'bc_range' => 'range()
関数の挙動が変更になりました。',
'bc_traits' => 'トレイトとstaticプロパティの同時使用時の挙動が変更されました。',
'bc_umultipledecimalseparators' => '定数U_MULTIPLE_DECIMAL_SEPERATORS
は非推奨になりました。U_MULTIPLE_DECIMAL_SEPARATORS
を使いましょう。',
'bc_mtrand' => '正しくないMt19937実装である定数MT_RAND_PHP
は非推奨になりました。',
'bc_reflection' => 'メソッドReflectionClass::getStaticProperties()
の返り値がnull許容型ではなくなりました。',
'bc_ini' => 'INI設定assert.active
・assert.bail
・assert.callback
・assert.exception
・assert.warning
は非推奨になりました。',
'bc_standard' => '関数get_class()
とget_parent_class()
は引数が必須になりました。',
'bc_sqlite3' => 'SQLite3のエラーモードのデフォルトが例外になりました。',
'footer_title' => 'さらなる性能向上、よりよい構文、すぐれた型安全性。',
'footer_description' => 'PHP8.3のダウンロードはこちら。WindowsバイナリはPHP for Windowsで見つけることができます。ChangeLogはこちらです。
マニュアルにあるマイグレーションガイドでは、新機能や変更点についてのより詳しい情報が記載されています。
', ];