ホームページ  >  記事  >  PHP 7.4は2019年12月にリリース予定

PHP 7.4は2019年12月にリリース予定

藏色散人
藏色散人オリジナル
2019-03-27 11:33:306501ブラウズ

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[&#39;date&#39;] = $data[&#39;date&#39;] ?? new DateTime();

これを実行できます:

$data[&#39;date&#39;] ??= new DateTime();

更新: この機能は PHP 7.4 にマージされました。

カスタム オブジェクトのシリアル化 rfc

この RFC では、__serialize__unserialize## という 2 つの新しいマジック メソッドが追加されています。 #。これらのメソッドと __sleep メソッドおよび __wakeup メソッドとの違いについては、RFC で説明されています。

更新: RFC が通過しました。この機能は PHP 7.4 で追加される予定です。

もう狭いマージンはありません<strong></strong> rfc

技術的には、これは PHP 7.4 に関連するアップデートではありませんが、確かに言及する価値があります。 RFC の投票ルールが変更されました。可決には常に 2/3 の多数決が必要です。

参照用のリフレクション<strong> </strong>rfc

Symfony の var ダンパーのようなライブラリは、変数を確実にダンプするために Reflection API に大きく依存しています。以前は、参照に対する適切なリフレクション サポートがなかったため、これらのライブラリは参照を検出するためにハッキングに依存していました。

PHP 7.4 では、この問題を解決するために

ReflectionReference クラスが追加されました。

更新: RFC が通過し、PHP 7.4 での変更が確認されました。

Addmb_str_split rfc

この関数は str_split と同じ機能を提供しますが、マルチバイト文字を対象とします。 。

常に有効ext-hash rfc

タイトルのとおり、この拡張機能はすべての PHP インストールに含まれるようになりました。永久的に利用可能です。

デフォルトでは有効になっていませんPEAR

PEAR はアクティブに保守されなくなったため、コア チームは PHP 7.4 のデフォルトのインストールを削除することにしました。

パスワードハッシュ(Hashing) レジストリ rfc

内部変更ハッシュライブラリの作成方法ユーザーが使いやすくなります。

非推奨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

関連する推奨事項:

PHP7とPHP5のセキュリティの違い(例)>>

PHP7の抽象構文木(AST)による変更点

PHP7言語の実行原理(PHP7ソースコード解析)》

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。