ホームページ >見出し >PHP8が登場しました! PHP チームが最初のベータ版 Alpha1 をリリース

PHP8が登場しました! PHP チームが最初のベータ版 Alpha1 をリリース

PHPz
PHPzオリジナル
2020-06-28 14:03:087833ブラウズ

php8 はいつリリースされますか? PHP 開発者はそれを非常に楽しみにしており、2020 年 6 月 25 日、PHP チームは最初のテスト バージョン Alpha1 (PHP 8.0.0) をリリースし、PHP8 リリース サイクルの正式な開始を告げました。

PHP8が登場しました! PHP チームが最初のベータ版 Alpha1 をリリース

PHP 8.0.0 の最初のバージョンの公式リリース発表は次のとおりです:

PHP8が登場しました! PHP チームが最初のベータ版 Alpha1 をリリース

PHP 8 アルファ版がリリースされました。ダウンロード アドレス:

https://www.php.net/archive/2020.php

PHP 8.0 のハイライト。 0:

PHP 8 は、いくつかの大きな変更点を導入する新しいメジャー バージョンであり、多くの新機能とパフォーマンスの向上に加えて、いくつかのハイライトを簡単に紹介します:

  • JIT、Just-In-Time、ジャストインタイムのコンパイル

誰もが最も関心を持っている機能は、他ならぬ JIT です。この機能は長年にわたって開発されており、PHP 5 および 7 のメジャー バージョン シリーズでも生き残ってきました (PHP 6 プロジェクトは中止されました)。投票によって PHP 8 に導入されることが最終的に確認されたのは、昨年 3 月のことでした。 。

JIT はコンパイラ戦略 (記事: PHP JIT とは? PHP8 の新機能 JIT グラフィックとテキストの説明 を参照) であり、動作中にコードを中間状態として表現します。アーキテクチャに依存するマシンコードに変換され、オンザフライで実行されます。 PHP では、これは、JIT が Zend VM によって生成された命令を中間表現として扱い、アーキテクチャに依存するマシン コードで実行することを意味します。つまり、コードをホストするのはもはや Zend VM ではなく、基盤となる CPU です。

PHP パフォーマンスは、コア データ構造 HashTable の最適化、Zend VM の特定のオペコードの強化、OPCache のオプティマイザー コンポーネントの継続的な改善によって PHP 7.0 以降大幅に向上しましたが、実際、これらの最適化は限界に達しているようです。限界。現在、JIT は下から開始し、PHP のパフォーマンスを向上させる最良の方法であると考えられています。

JIT 導入後のパフォーマンス (および PHP 8 の全体的なパフォーマンス) の比較については、今月の Phoronix ベンチマーク テストを参照してください (注: テストは最後にあるソース コードのビルド バージョンを使用して実施されました) 5月)。

  • 共用体型、共用タイプ

共用タイプのサポート異なる型の複数の値を受け取ります。2 つ以上の型のコレクションであり、使用するときにいずれかを選択できます。共用体タイプの使用は、PHP を含むオープン ソース エコシステムの標準ライブラリで非常に一般的です。PHP の共用体タイプのサポートにより、より多くの型情報を phpdoc から関数シグネチャに移行できるようになります。共用体型は、ジェネリックスに次ぐ、現在の型宣言システムにおける最大の進歩であると言えます。

  • 属性、注釈

ここでの属性は注釈です他の言語の (アノテーション) は、ドキュメント ブロックを解析せずにクラスにメタデータを追加する方法を提供します。

詳細: PHP8 の新機能: 属性

  • 新しい静的リターンtype

self を返すこともできますが、PHP の動的型の性質を考慮すると、PHP で静的な戻り値の型をサポートする方が効率的です。 8. 多くの開発者にとって非常に役立つはずです。

  • WeakMap、弱いマッピング

WeakMap では、次からの作成が可能です。キーとして使用されるオブジェクトのガベージ コレクションを妨げることなく、オブジェクトを任意の値にマッピングします (SplObjectStorage と同様)。オブジェクトが WeakMap に追加されている限り、GC は条件がトリガーされたときにそのオブジェクトが占有しているメモリを再利用できます。

PHP 7.4 では、WeakReference (弱参照) のサポートが実際に導入されました。ただし、生の弱参照自体の用途は限られており、実際には弱いマッピングがより一般的に使用されます。破棄コールバックを登録する機能が提供されていないため、PHP の弱参照上に効率的な弱いマッピングを実装することはできません。弱いマッピングの一般的な使用例は、アクティブな状態を強制せずにデータを個々のオブジェクト インスタンスに関連付け、長時間実行されるプロセスがメモリを不必要に占有することを回避することです。

WeakMap/WeakReference については、この記事の WeakRef の部分を参照してください。これは JS に関するものですが、原則は同じです:

https :/ /www.html.cn/web/javascript/19449.html

その他の関連機能については、次をご覧ください:

さらに、一致式 (一致式) や @ の使用など、投票段階にある (つまり、すぐに特定のバージョンに組み込まれる可能性がある) 機能がいくつかあることにも気づきました。 < ;> の代わりに @ または #[] を使用した提案は注目に値します:

PHP8が登場しました! PHP チームが最初のベータ版 Alpha1 をリリース

PHP 8 はいくつかの大きな変更が加えられたメジャー アップデート バージョンであるため、関連事項についてはアップグレードに関するドキュメントを確認することをお勧めします。ただし、実際には、これらの重大な変更の多くは以前の 7.* バージョンですでに導入されているため、最新の状態を維持している場合は、PHP 8 にアップグレードしても大きな影響はありません。

UPGRADING 文档

概要

PHP 8 の成功は 2 番目の JAVA であり、他の言語からの多数の開発者が PHP キャンプに戻ることになります。やっぱり早くて簡単ですね!一緒に楽しみにしましょう!

[関連する推奨事項]

php バージョン開発履歴 (1995 年から 2020 年)

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