1 ??
便利だと思うので最初にこれを置きます。使用法:
リーリー
リーリー
三項演算子は次のように使用できることがわかっています:リーリー
ただし、これは $a が定義されていることを前提としています。新しい ?? 演算子により判断が簡略化されます。
2.関数の戻り値の型宣言
公式ドキュメントで提供されている例 (... の辺の長さパラメータ構文は PHP 5.6 以降でのみ使用できることに注意してください):
リーリー
このステートメントの書き方は Swift に似ています:
リーリー
この機能は、PHP の暗黙的な型変換によって引き起こされるいくつかの問題を回避するのに役立ちます。関数を定義する前に期待される結果について考えると、不要な間違いを避けることができます。ただし、ここで注意が必要な機能もあります。 PHP 7 では、strict モードを使用する宣言ディレクティブである strict_types が追加されています。
戻り値の型宣言を使用する場合、それが厳密モードで宣言されておらず、戻り値が期待される型ではない場合でも、PHP はそれに対してキャスト型変換を実行します。ただし、strict モードの場合は、TypeError の Fatal エラーがトリガーされます。
強制モード:
リーリー
上記のコードは正常に実行でき、foo 関数はエラーなしで int 1 を返します。厳密モード:
リーリー
宣言後、致命的なエラーが発生します。js の strict モードに似ていますか?
3. スカラー型宣言
PHP 7 の関数の仮パラメータ型宣言はスカラーにすることができます。 PHP 5 では、クラス名、インターフェイス、配列、または呼び出し可能なもののみにすることができます (PHP 5.4 では、匿名関数を含む関数にすることもできます)。文字列、int、float、bool も使用できるようになりました。
リーリー
上記の厳密モードの問題がここにも当てはまることに注意してください。強制モード (デフォルトでは強制型変換) では、期待される型を満たさないパラメーターは引き続き強制的に型変換されます。また、厳密モードでは、 TypeError が発生すると致命的エラーが発生します。
4. バッチ宣言を使用する
PHP 7 では、複数のクラス、関数、または const を 1 つの文で宣言できます:
リーリー
注意する必要がある質問は、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 であり、最終バージョンは間もなく公開される予定です。