これまでのところ、PHPはphp7のRC5バージョンを正式にリリースしており、最初の正式バージョンは11月頃発売予定!現在、php7 の主要な機能は確実に完成しており、これ以上の変更はありません。後続のいくつかのバージョンの反復は、主にバグ修正、最適化などです。私たちが楽しみにしていた php7.0 の 5 つの新機能について話しましょう。
composer と PSR-4 に基づくフレームワークを使用している場合、この記述方法でクラス ファイルを正常にロードできますか?実際には、composer によって登録されたオートロード メソッドは、クラスが呼び出されたときにクラスの名前空間に従って場所を検索します。この書き方は影響しません。
1. 演算子 (NULL 合体演算子)
便利だと思うので最初にこれを置きます。使用法:
リーリー以下と同等です:
リーリー三項演算子は次のように使用できることがわかっています:
リーリーただし、これは $a が定義されていることを前提としています。新しい ?? 演算子により判断が簡略化されます。
2.関数の戻り値の型宣言
公式ドキュメントで提供されている例 (... の辺の長さパラメータ構文は PHP 5.6 以降でのみ使用できることに注意してください):
リーリーこの例から、関数 (匿名関数を含む) で戻り値の型を指定できることがわかります。
このステートメントの書き方は Swift に似ています:
リーリーこの機能は、PHP の暗黙的な型変換によって引き起こされるいくつかの問題を回避するのに役立ちます。関数を定義する前に期待される結果について考えると、不要な間違いを避けることができます。
ただし、ここで注意が必要な機能もあります。 PHP 7 では、strict モードを使用する宣言ディレクティブである strict_types が追加されています。
戻り値の型宣言を使用する場合、それが厳密モードで宣言されておらず、戻り値が期待される型ではない場合でも、PHP はそれに対してキャスト型変換を実行します。ただし、strict モードの場合は、TypeError の Fatal エラーがトリガーされます。
強制モード:
リーリー上記のコードは正常に実行でき、foo 関数はエラーなしで int 1 を返します。
厳密モード:
リーリー# PHP 致命的エラー: Uncaught TypeError: foo() の戻り値は、test.php:6 で返される整数型、浮動小数点型である必要があります
宣言後、致命的なエラーが発生します。
js の strict モードに似ていますか?
3. スカラー型宣言
PHP 7 の関数の仮パラメータ型宣言はスカラーにすることができます。 PHP 5 では、クラス名、インターフェイス、配列、または呼び出し可能なもののみにすることができます (PHP 5.4 では、匿名関数を含む関数にすることもできます)。文字列、int、float、bool も使用できるようになりました。
公式の例:
リーリー上記の厳密モードの問題がここにも当てはまることに注意してください。強制モード (デフォルトでは強制型変換) では、期待される型を満たさないパラメーターは引き続き強制的に型変換されます。また、厳密モードでは、 TypeError が発生すると致命的エラーが発生します。
4. バッチ宣言を使用する
PHP 7 では、複数のクラス、関数、または const を 1 つの文で宣言できます:
リーリーしかし、それでも各クラス、関数、または const の名前を記述する必要があります (Python のような import * メソッドからの名前はありません)。
注意する必要がある質問は、composer と PSR-4 に基づくフレームワークを使用している場合、この記述方法でクラス ファイルを正常にロードできるかということです。実際、composer によって登録されたオートロード メソッドは、クラスが呼び出されたときにクラスの名前空間に従って場所を検索します。この書き方は影響しません。
5. その他の機能
他の機能を一つずつ紹介するつもりはありません。興味がある場合は、公式ドキュメントを確認してください: http://php.net/manual/en/migration70.new-features.php
いくつかについて簡単に説明しましょう:
PHP 5.3 には匿名関数が追加され、現在は匿名クラスが存在します。
クロージャは呼び出しメソッドを追加します。
ジェネレーター (またはイテレーター、より適切には) は最終的な戻り値 (return) を持つことも、yield from の新しい構文を通じて別のジェネレーター (ジェネレーター デリゲート) に渡すこともできます。
ジェネレーターの 2 つの新しい機能 (return と yield from) を組み合わせることができます。特定の外観を自分でテストできます。 PHP 7 は現在 RC5 であり、最終バージョンは間もなく公開される予定です。
上記はすべて php7.0 の新機能に関するものです。この紹介が気に入っていただければ幸いです。