'PHP8.1は、PHPのメジャーアップデートです。Enum、読み取り専用プロパティ、callableの新シンタックス、Fiber、交差型、パフォーマンス向上など数々の新機能があります。',
'main_title' => 'リリース!',
'main_subtitle' => 'PHP8.1は、PHPのメジャーアップデートです。
Enum、読み取り専用プロパティ、callableの新シンタックス、Fiber、交差型、パフォーマンス向上など数々の新機能があります。',
'upgrade_now' => '今すぐアップデートする。',
'documentation' => 'ドキュメント',
'enumerations_title' => 'ENUM型',
'enumerations_content' => '
定数のかわりにENUMを使うことで、すっきりと書けるようになります。
', 'readonly_properties_title' => '読み取り専用プロパティ', 'readonly_properties_content' => '読み取り専用プロパティは、一度でも値を割り当てると、その後変更することはできません。
これはValue ObjectやData Transfer Objectを実現するのに最適です。
任意の関数へのリファレンスを取得できるようになりました。第一級callableと呼ばれます。
', 'new_in_initializers_title' => '引数デフォルト値にNew', 'new_in_initializers_content' => '引数デフォルト値、およびstatic変数、グローバル定数、アトリビュート引数にnewを書けるようになりました。
特にアトリビュートの入れ子において威力を発揮します。
', 'pure_intersection_types_title' => '交差型', 'pure_intersection_types_content' => '交差型は、複数の型を全て満たすことを示す型です。
A&B|C
のように、交差型とUNION型を混在させることは今のところできません。
値を返さないことを示すnever
型が追加されました。die()
、exit()
、trigger_error()
等、関数内でスクリプトが中断される場合に使います。
Finalクラス定数は、子クラスで上書きされないことが保証されるクラス定数です。
', 'octal_numeral_notation_title' => '8進数表記', 'octal_numeral_notation_content' => '8進数を0o
のプレフィックスで書くことができるようになりました。
Fiberは同時実行を実現する軽量な機能です。ジェネレータのような、スタックのどこからでも一時停止や再開が可能なコードを作ることができます。ただしFiber自体は必要最低限の機能しか持っていないため、非同期処理を実現するためにはイベントループ等の実装が必要です。
ユーザがFiberを直接使用することはほとんどなく、ライブラリを経由して利用することが推奨されます。
', 'array_unpacking_title' => '文字列キー配列のアンパック', 'array_unpacking_content' => 'これまでPHPは、スプレッド演算子による配列展開は数値キーしか対応していませんでした。PHP8.1では文字列キーの配列についてもアンパックに対応します。
', 'performance_title' => 'パフォーマンス向上', 'performance_chart' => 'Symfonyデモ リクエスト時間#[ReturnTypeWillChange]
アトリビュート。',
'other_new_fsync_fdatasync' => 'fsync
・fdatasync
関数。',
'other_new_array_is_list' => 'array_is_list
関数。',
'other_new_sodium_xchacha20' => 'SodiumがXChaCha20暗号化に対応。',
'bc_title' => '互換性のない変更点',
'bc_null_to_not_nullable' => 'nullableでない内部関数にnullを渡すことを非推奨化。',
'bc_return_types' => 'ビルトインクラスの返り値の型判定が厳格になりました。',
'bc_serializable_deprecated' => 'Serializable
インターフェイスを非推奨化。',
'bc_html_entity_encode_decode' => 'HTMLエンコード関数は、デフォルトでシングルクォートもエスケープするようになりました。',
'bc_globals_restrictions' => '$GLOBALS
の扱いが他のグローバル変数と同じようになりました。',
'bc_mysqli_exceptions' => 'MySQLiのエラーモードのデフォルトが例外になりました。',
'bc_float_to_int_conversion' => 'floatからintへ暗黙の型変換を非推奨化。',
'bc_finfo_objects' => 'file_info
が返す型はリソースからfinfoオブジェクトになりました。',
'bc_imap_objects' => 'imap関数が返す型はリソースからIMAP\Connection
オブジェクトになりました。',
'bc_ftp_objects' => 'FTP関数が返す型はリソースからFTP\Connection
オブジェクトになりました。',
'bc_gd_objects' => 'GDのフォント関数が返す型はリソースからGdFont
オブジェクトになりました。',
'bc_ldap_objects' => 'LDAP関数が返す型はリソースからLDAP\Connection
・LDAP\Result
・LDAP\ResultEntry
オブジェクトになりました。',
'bc_postgresql_objects' => 'PostgreSQL関数が返す型はリソースからPgSql\Connection
・PgSql\Result
・PgSql\Lob
オブジェクトになりました。',
'bc_pspell_objects' => 'Pspell関数が返す型はリソースからPSpell\Dictionary
・PSpell\Config
オブジェクトになりました。',
'footer_title' => 'より良いパフォーマンス、より良いシンタックス、より良い型安全性。',
'footer_content' => 'PHP 8.1 ソースコードのダウンロードは こちらから。 Windowsのバイナリはこちらから。 変更点の一覧はこちらにあります。
マニュアルからマイグレーションガイドが利用可能です。 新機能や互換性のない変更の詳細については、マイグレーションガイドを参照してください。
', ];