これまでのところ、PHP は php7 の RC5 バージョンを正式にリリースしており、最初の正式バージョンは 11 月頃にリリースされる予定です。現在、php7 の主要な機能は確実に完成しており、これ以上の変更はありません。後続のいくつかのバージョンの反復は、主にバグ修正、最適化などです。私たちが楽しみにしていた php7 の主な変更点について話しましょう。 。 。
新機能プレビュー
リーリー一部の機能が削除されました
1. いくつかの古い拡張機能を削除し、PECL に移行しました (例: mysql)
2. SAPI のサポートを削除します
3. や language="php" などのタグが削除されました
4. 16進数文字列変換を廃止しました
5.HTTP_RAW_POST_DATA は削除されました (代わりに php://input を使用できます)
6. 静的関数は、互換性のない $this
を介した非静的関数の呼び出しをサポートしなくなりました
$o = & new className{}、この書き込みメソッドはサポートされなくなりました
7. php.ini ファイルはコメントとして # を削除し、コメントに ; を使用します。
いくつかの行動の変化
同じ名前の関数定義パラメータはサポートされなくなりました
型と同じ名前のコンストラクターの使用は推奨されなくなりました (まだ削除されておらず、後で削除される予定です)
String、int、float などのキーワードはクラス名として使用できません
func_get_args() は現在の変数の値を取得します
リーリー
PHP NG
新しい php エンジンは多くの箇所を最適化しました。そのおかげで、php7 のパフォーマンスは php5 と比較して 2 倍近く向上しました。ZVAL体制の再構築
左側はPHP5のzval(24バイト)、右側はPHP7のzval(16バイト)です。
php7 の zval は php5 よりも複雑であることがわかりますが、24 バイトから 16 バイトに削減できます。なぜですか?
C 言語では、struct の各メンバー変数は独立したメモリ空間を占有しますが、union のメンバー変数はメモリ空間を共有します (union は php7 で struct を置き換えるために広く使用されています)。したがって、メンバー変数がはるかに増えているように見えますが、パブリック変数の多くが占める実際のメモリ領域は減少しています。
以前の HashTale 構造を新しい Zend 配列に置き換えます
非常によく使用されるオーバーヘッドの低い関数の一部は、エンジンによってサポートされるオペコードに直接変換されます
リーリー
コアソートの最適化 zend_sort
リーリー
抽象構文ツリー
現時点でそのようなニーズがある場合は、PHP ソース ファイルで構文検出を実行し、コーディング標準を実装する必要があります。 php5 より前には、AST は存在せず、オペコードはパーサーから直接生成されていました。これを実現するには、外部の php 構文パーサーを使用する必要があります。php7 には AST が追加されており、そのような拡張機能を自分で実装でき、拡張機能によって提供される関数を使用して、ファイルに対応する AST 構造を直接取得できます。識別できるので、これに基づいて最適化と判断を行うことができます。
64ビットINTサポート
2GBを超える文字列の保存をサポート
2GBを超えるファイルのアップロードをサポート
すべてのプラットフォームで文字列が 64 ビットであることを確認します [64 ビット]
統一された構文変数
リーリー
foreachループの改善 リーリー
複数の新しいオペレーターリーリー
戻り値の型の宣言リーリー
スカラー型の宣言リーリー
コアエラーは例外を通じて捕捉できますリーリー
繊細な語彙分析を依頼するリーリー
これで、php7 の予備的な理解はほぼ終わりました。間違いや低レベルの間違いがたくさんあるはずです。修正してメモできるようにしてください。おいおい!