PHP 7.4.0 がリリースされました。これは、PHP 7 シリーズの 4 番目の機能アップデートです。
PHP 7.4.0 では、次のような多くの改善と新機能が導入されています。
1.型付きプロパティ 型属性
クラス属性で型宣言がサポートされるようになりました。次の例では、$User-> id には int 値のみが割り当てられ、$User-> name には文字列値のみが割り当てられます。
<?php class User { public int $id; public string $name; } ?>
2.アロー関数 アロー関数
アロー関数は、暗黙的な値渡し関数を定義する方法を提供します。ドメインバインド関数の構文。
<?php $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); // $nums = array(10, 20, 30, 40); ?>
これは、array_map や array_filter などの関数にクロージャを渡すときに非常に役立ちます。
// A collection of Post objects $posts = [/* … */]; $ids = array_map(fn($post) => $post->id, $posts);
3.制限された戻り値の型の共分散と引数の型の反変性 制限された戻り値の型の共分散と引数の型の反変性
Full共分散/反分散のサポートは、自動読み込みを使用する場合にのみ提供されます。参照される前にすべてのクラスが使用可能である必要があるため、単一ファイル内では非循環型参照のみを使用できます。
<?php class A {} class B extends A {} class Producer { public function method(): A {} } class ChildProducer extends Producer { public function method(): B {} } ?>
4.配列内部のアンパック内部配列のパック
<?php $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; ?>
5.数値リテラル区切り文字 数値リテラル区切り文字
数値リテラルでは、数値の間にアンダースコアを含めることができます。
<?php 6.674_083e-11; // float 299_792_458; // decimal 0xCAFE_F00D; // hexadecimal 0b0101_1111; // binary ?>
6.弱い参照 弱い参照
弱い参照を使用すると、プログラマは、オブジェクトへの参照を保存せずに保持できます。オブジェクトの破壊を防ぎます。
7.__toString() からの例外を許可する __toString() から例外をスローできるようにする
例外を許可するようになりました。 from __toString() は例外をスローしますが、以前は致命的なエラーが発生していました。文字列変換における既存の回復可能な致命的なエラーは、エラー例外に変換されました。
8.Opcache プリロード Opcache プリロード
Opcache プリロードのサポートが追加されました。
さらに、いくつかの非推奨があり、いくつかの拡張機能がコアから削除されています。詳細については、次を参照してください:
https://www.php.net
https://www.php.net/manual/zh/migration74.new-features.php