ついて詳しく取り上げていませんでした。(もちろん社内プロジェクトで使えるかどうかのチェックなどはしています)これではいかんということで、社内でもPHP7の新機能や注意点をRFCベースで共有し、今後のアップデートに備えるべく、筆を取りました。内容となってしまいましたよ。スライドにして106枚。(何故こんな枚数になった。)ということで、折角作ったのに社内にしか公開しないのはもったいない、ということで、ひとまとめにした内容を記事として書き起こしてみます。略で、仕様を公募しパブリックな場所で議論した上で、投票で実装するかどうかを決めるというプロセスをPHPは採用しています。ここに5.3以降の全てのRFCが載っています。いうインターフェースを新設し、致命的なエラーですらキャッチ出来るようになりました。なされ、処理は継続します。基本ツリーは変わりましたが、アプリコードは基本的に何も変えることがありません。throwedError($error);}といった形で、テスト中に致命的エラーが発生しても処理を継続することが出来るようになります。クラスが定義されたため、既存アプリコードで同名クラスを実装している場合はクラス名を変更する必要があります。現状ではその予約語をそのまま変数名としたり、メソッド名にすることは構文エラーとなり出来ません。それでは適正でない名前でユーザーサイドAPIの実装をしなければならないということでもあります。そこで、PHP7では、構文解析を文脈に沿って行うことにより、この予約語の利用制限を取り払いました。無名クラスドキュメントが不要で、実行時に一度しか呼ばれないような一時的なクラスの場合、クラスに名称をつけずに宣言することが可能になります。ささいな実装のためにautoloaderに負担をかけないといったことが想定されています。いう比較演算子が追加されます。$b;}非常にシンプルかつ的確な比較を表すことが可能になります。逆に言うと、ソート以外ではあまり活用されない方が良いかもしれません。します)関数やメソッドの戻り値の型を指定することが出来るようになります(もちろん指定しないことも可能)。戻り値型を宣言出来ることによるメリットには次のようなものが上げられています。インターフェースなどの親クラスが予期していない戻り値を子クラスが返してしまうことを防ぐ意図していない戻り値を防ぐコメントと違い、簡単に無効化出来ない方法で戻り値の情報をドキュメント化する構文シンタックスは非常に単純です。戻り値を宣言しない場合は、今まで通りの挙動が行われます。不一致・署名バリデーション継承の中で、戻り値の定義は常に不変です。子クラスが親メソッドをオーバーライドする場合は、子メソッドは親と完全に同じ戻り値の型を持たなければなりません。親クラスが戻り値型を宣言していない場合は、子クラスが自由に宣言可能です。共変性(Covariant)のある型宣言は他の多数の言語で利用されていますが、いくつかの問題があったため取りやめられました。以下は正しい継承です。}}以下の継承はエラーになります。いう形で「foo関数の実装位置を探す」といったことがよく求められていて(マジデ?)、パーサの変更も不要だったため後者が選ばれました。引数の挙動に合わせるため。デフォルト値が定義されている場合を除く)。許可することは型宣言の意義に反するため。いう処理はPHP内で良く使われていると思います。いう演算子が設けられました。SQLなどですでに実装されています。PythonやJavascriptでも似たようなものが実装されていますが、これは厳密な比較ではないので注意が必要です。関数なので式を渡すことが出来ない運用環境でも実行時に必ずオーバーヘッドが存在するといった重要な課題があり、あまり利用されていませんでした。PHP7では関数ではなく言語仕様として生まれ変わり、より使いやすい仕組みとなりました。opcodeを生成しないようにすることも可能になりました。...}こんなコメント書きますよね。コメントはソースコードを読まない限り分かりません。3);}こう書けば、実行時にエラーが出て分岐が間違っていることに気づくことが出来ます。言うらしいです(詳しくはわからず)。無効にすることで速度を向上させられます。ミスを起こさせないここ重要。利用出来るようになります。予約文字列となり、クラス名などで利用出来なくなりました。使ってるライブラリが多そうな所ですね。暗黙の型変換を行わない宣言をするにはdeclare(strict_types=1);という謎のディレクティブを書く必要があります。ディレクティブをファイルの先頭に書いたファイル内のタイプヒント実行は全て厳密になります。受け付けるので実装しない内部関数は戻り値のタイプヒントを行わない(エラーでnullを返すことがあるので)RFCへの投票が108人賛成(166人中)だった(他のは20人とか)その他のRFCそこまで重要ではない、シンプルなRFCです。既存コードに影響する可能性があるものも含まれるので、それぞれにおいては注意しましょう。引数異常等)した場合、nullではなく例外を投げるようにして、セキュリティ部分でバグを見逃さないようにします。構文を用いることで、ジェネレータの中でさらに複数のジェネレータを利用することが出来るようになります。スカラー型のクラス・インターフェース・トレイトの宣言を禁止します。内部クラスのコンストラクタの振る舞い変更PDO、finfo、MessageFormatterなどの内部クラスのコンストラクタで処理に失敗した場合、例外ではなくnullが返ります。E_WARNINGに変更します。