PHP 7.4 は 2019 年 12 月にリリースされる可能性があります。このページは定期的に更新されます。
<strong>プリロード</strong>
<strong>プリロード</strong> rfc
プリロード
( preloading) は、大幅なパフォーマンスの向上をもたらす PHP コアへの素晴らしい追加機能です。
要するに: 現在フレームワークを使用している場合、リクエストごとにそのファイルをロードして再コンパイルする必要があります。プリロードにより、サーバーは起動時に PHP ファイルをメモリにロードし、後続のすべてのリクエストで永続的に利用できるようになります。
パフォーマンスの向上には、もちろんコストがかかります。プリロードされたファイルのソースが変更された場合は、サーバーを再起動する必要があります。
<strong>型付きプロパティ</strong>
rfc
クラス変数は型ヒントになる可能性があります:
class A { public string $name; public Foo $foo; }
Update:Toこれまでのところ、Typed プロパティはマージされており、PHP 7.4 で使用できることが確認されています。
<strong>型の分散の改善</strong>
(型の分散の改善) rfc
以前記事に書きましたPHP の型システムについては、PHP コアにいくつかの改善が加えられるのは嬉しいことです。
型の違いは、独自のブログ投稿に値するトピックです;
つまり、共変
の戻り値の型
class ParentType {} class ChildType extends ParentType {} class A { public function covariantReturnTypes(): ParentType { /* … */ } } class B extends A { public function covariantReturnTypes(): ChildType { /* … */ } }
と を使用できるようになります。 contravariant
パラメータ。
class A { public function contraVariantArguments(ChildType $type) { /* … */ } } class B extends A { public function contraVariantArguments(ParentType $type) { /* … */ } }
更新: RFC は現在投票段階ですが、問題なく可決されるようです。
<strong>外部関数インターフェイス</strong>
(外部関数インターフェイス) rfc
外部関数インターフェイス、参照FFI として使用すると、ユーザーランドから C コードを呼び出すことができます。これは、PHP 拡張機能を純粋な PHP で作成できることを意味します。
これは複雑なトピックであることに注意してください。この機能を正しく使用するには、C の知識が必要です。
<strong>Null</strong>
マージ代入演算子 rfc
この方法ではありません:
$data['date'] = $data['date'] ?? new DateTime();
これを実行できます:
$data['date'] ??= new DateTime();
更新: この機能は PHP 7.4 にマージされました。
カスタム オブジェクトのシリアル化 rfc
この RFC では、__serialize
と __unserialize## という 2 つの新しいマジック メソッドが追加されています。 #。これらのメソッドと
__sleep メソッドおよび
__wakeup メソッドとの違いについては、RFC で説明されています。
もう狭いマージンはありません<strong></strong>
rfc
参照用のリフレクション<strong> </strong>
rfc
ReflectionReference クラスが追加されました。
デフォルトでは有効になっていませんPEAR
非推奨ext/wwdx<strong> </strong>
rfc
下位互換性のない変更のアップグレード
PHP バージョンをアップグレードするときは、必ず完全なアップグレード ドキュメント を確認してください。
下位互換性のない変更の一部を強調表示します: •parent::親のないクラスで参照すると、代わりにコンパイル時エラーが生成され、実行時エラーになります。 。
• DateTime
または datetimevariable
インスタンスで var_dump を呼び出しても、オブジェクトにアクセス可能なプロパティは残されなくなります。
• openssl_random_pseudo_bytes
エラー状態では例外がスローされます。
• PDO
または PDOStatement
インスタンスをシリアル化しようとすると、PDOException
ではなく例外が生成されます。
• ArrayObject
インスタンスで get_object_vars()
を呼び出すと、ラップされたオブジェクトの値ではなく、ArrayObject
自体のプロパティが返されます。配列またはオブジェクト。 (配列) キャストは影響を受けないことに注意してください。
翻訳元: https://stitcher.io/blog/new-in-php-74#reflection-for-references-rfc
関連する推奨事項: