PHP 8のベータテストが始まりました

から提出された PHP 8 プログラミング言語の新しいブランチの最初のベータ リリースです。リリースは 26 月 7.4.9 日に予定されています。 同時に、PHP 7.3.21、XNUMX、および
7.2.33。蓄積されたエラーと脆弱性が排除されました。

メイン イノベーション PHP 8:

  • 有効化 JITコンパイラを使用すると生産性が向上します。
  • サポート 名前付き関数の引数を使用すると、名前に関連して関数に値を渡すことができます。 任意の順序で引数を渡し、オプションの引数を定義できます。 たとえば、「array_fill(start_index: 0、num: 100、value: 50)」となります。
  • メソッドを呼び出すとき 許可された 「?」演算子を使用すると、メソッドが存在する場合にのみ呼び出しを開始でき、「null」値を返すための不必要なチェックが回避されます。 たとえば、「$dateAsString = $booking->getStartDate()?->asDateTimeString()」;
  • サポート 共用体型、XNUMX つ以上の型のコレクションを定義します (たとえば、「public function foo(Foo|Bar $input): int|float;」)。
  • サポート 属性 Docblock 構文を使用せずにメタデータ (型情報など) をクラスにバインドできるようにする (アノテーション)。
  • 式のサポート match switch とは異なり、値を返すことができ、条件の組み合わせをサポートし、厳密な型比較を使用し、「ブレーク」仕様を必要としません。

    $result = match($input) {
    0 => 「こんにちは」、
    '1'、'2'、'3' => 「世界」、
    };

  • 短縮された構文 クラス定義を使用すると、コンストラクターの定義とプロパティを組み合わせることができます。
  • 新しい戻り値の型 - 静的な.
  • 新しいタイプ - 混合、関数が異なるタイプのパラメーターを受け入れるかどうかを判断するために使用できます。
  • 投げる 例外を処理するため。
  • ウィークマップ ガベージ コレクション中に犠牲になる可能性のあるオブジェクトを作成するため (たとえば、不要なキャッシュを保存するため)。
  • 機会 オブジェクトに対して式「::class」を使用します (get_class() の呼び出しに似ています)。
  • 機会 変数にバインドされていない例外の catch ブロック内の定義。
  • 機会 関数パラメータのリストの最後の要素の後にカンマを残します。
  • 新しいインターフェース ストリング可能 文字列に変換できる文字列タイプまたはデータを識別します (__toString() メソッドが利用可能です)。
  • 新機能 str_contains()、部分文字列の出現を決定する strpos の簡略化された類似物、および文字列の先頭と末尾の一致をチェックする関数 str_starts_with() および str_ends_with() です。
  • 追加機能 fdiv()、ゼロで除算するときにエラーをスローせずに除算演算を実行します。
  • かわった 文字列結合ロジック。 たとえば、式 'echo "sum:" 。 $a + $b' は、以前は 'echo ("sum: " . $a) + $b' として解釈されていましたが、PHP 8 では 'echo "sum: " として扱われます。 ($a + $b)'。
  • 締められた たとえば、式 "[] % [42]" や "$object + 4" などの算術演算およびビット演算をチェックすると、エラーが発生します。
  • 実装済み 安定した並べ替えアルゴリズム。異なる実行間でも同一の値の順序が保持されます。
  • 出所: オープンネット.ru

コメントを追加します