php7の新機能のまとめ

不言
不言オリジナル
2018-08-29 10:41:412562ブラウズ

この記事は、php7 の新機能をまとめたものです。参考になる内容です。困っている方は参考にしてください。お役に立てれば幸いです。

PHP7 がリリースされてから約 3 年が経過し、現在はバージョン PHP7.2.9 まで発展しています。このリリースにより、PHP のパフォーマンスが大幅に向上しました。これは主に、PHP による Zend エンジンの徹底的な最適化によるもので、システム上の PHP のリソース使用量も削減されました。

主な変更点は次のとおりです。

  • 抽象構文ツリー

PHP の以前のバージョンでは、PHP コードは ZendVM 命令は、構文解析段階で直接生成されます。つまり、opline 命令は、コンパイラーとエグゼキューターを結合する zend_ language_parser.y で直接生成されます。 。

抽象構文ツリーが PHP7 に追加されました。まず、PHP コードが解析されて抽象構文ツリーが生成され、次に抽象構文ツリーが ZendVM 命令にコンパイルされます。抽象構文ツリーの追加により、PHP コンパイラと実行プログラムが適切に分離されます。コンパイラは命令の生成ルールを気にする必要がありません。次に、実行プログラムは、独自のルールに従って抽象構文ツリーを対応する命令にコンパイルします。実行プログラムもまた、この命令の構文規則がどのようなものであるかに注意する必要があります。

  • ネイティブ TLS

ネイティブ TLS (スレッド ローカル ストレージ) は、スレッドのリソース プールを保存するために PHP7 で使用されます。 simple 簡単に言うと、__thread はグローバル変数の識別に使用されます。そのため、このグローバル変数はスレッド専用であり、異なるスレッドによる変更は相互に影響しません。

  • 関数のパラメータと戻り値の型を指定する

PHP7 では、関数のパラメータと戻り値の型を指定できます。

  • zval 構造の変更

PHP7 は、参照カウントを特定の value に転送します。これはより合理的です。さらに、zval 構造体のサイズも 24 バイトから 16 バイトに削減されており、これは PHP7 がシステム リソースの使用量を削減できる最適化ポイントです。

  • 例外処理

PHP5.x の多くの操作は直接エラー エラーをスローしますが、PHP7 では、ほとんどのエラーが例外スローに変更されます。このようにして、try catch を通じてキャプチャできます。

  • HashTable の変更

PHP7 の HashTable (HashTable##) には非常に大きな変更があります。 # 構造体 サイズが 72byte から 56byte に削減され、同時に配列要素 Bucket 構造体も 72byte から 32byte に削減されます。

  • Executor

は PHP7 でパラメータを渡す方法を採用しなくなりましたが、

execute_dataopline ストレージはレジスタを通じて実行されるため、パラメータの受け渡しによる頻繁なスタック操作が回避されると同時に、レジスタはメモリよりも高速にアクセスされます。

  • 新しいパラメータ解析メソッド

PHP5.x は

zend_parse_parameters() を通じて関数パラメータを解析します。PHP7 は別のメソッドで保持します。元の方法と同じですが、新しい解析方法の方が高速です。

関連する推奨事項:

PHP7 新機能の紹介

PHP7 新機能の紹介

以上がphp7の新機能のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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