PHP 7.4.0のリリース、このバージョンマーク第4の特徴PHPのアップデートの7シリーズ。
PHP 7.4.0 Aの改善の数、およびもたらしたいくつかの新機能、を含みます:
型指定されたプロパティ タイププロパティ
Class属性は、現在の型宣言をサポートし、次の例では、$ USER-を強制する>のid int型の値のみを割り当てることができ、そして$ USER->名前は、文字列値だけを割り当てることができます。
<?php
class User {
public int $id;
public string $name;
}
?>
アローファンクション 機能矢印
矢印関数スコープの結合暗黙値を有することによって機能を定義するための速記構文を提供します。
<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>
閉鎖または関数array_filterようにarray_mapに渡されると、それは重要な役割を再生することができます。
// A collection of Post objects $posts = [/* … */];
$ids = array_map(fn($post) => $post->id, $posts);
限られた戻り値の型共分散と引数の型Contravarianceは、 共変戻り値の型と引数の型インバータを制限しました
自動ロードは唯一のフル共分散/インバータのサポートを提供した場合のみ。単一のファイル、それが参照される前に、すべてのクラスが利用可能でなければならないので、唯一の非環式参照の型で。
<?php
class A {}
class B extends A {}
class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
開梱内部配列 の配列内にパッケージ
<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>
数値リテラル区切り の数字の区切り文字
デジタルテキスト、数字の間に下線を含めることができます。
<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>
弱参照 弱参照
そのプログラマは、オブジェクトへの参照を保持することができます弱い参照して、オブジェクトが破棄されなくなることはありません。
__toString()から例外を許可する 例外をスロー)(__toStringすることができます
今、例外が過去に致命的なミスにつながることができ、既存の回復可能な致命的なエラーの文字列変換は、エラー例外に変換された__toString()、からスローされることができます。
プリロードOpcache Opcacheのプリロード
新Opcacheはサポートをプリロード。
コアからいくつか捨てられた、いくつかの拡張および削除が詳細を確認し、もあります。