ニュース
「PHP 8」が正式リリース ~JITの導入により、処理速度が大きく向上
比較演算子(==)の挙動も見直し。間違いにくく、シンプルなコード記述が可能に
2020年11月27日 03:02
スクリプト言語「PHP」の新しいメジャーバージョン「PHP 8」が、11月26日にリリースされた。言語仕様の見直しと拡充、エラー処理の改善などにより、これまでありがちだったミスを排し、ソースコードをより簡潔に記述できるようになったほか、パフォーマンスが大きく向上している。
「PHP」は、Rasmus Lerdorf氏が開発したオープンソースのプログラミング言語およびその実行環境。今年6月で誕生25周年を迎えた老舗のスクリプト言語だ。ブログシステム「WordPress」やコンテンツ管理システム「Drupal」など、多くのWebアプリケーションで採用されている。Windows/Mac/Linuxなどの幅広いOSに対応しており、公式サイト“php.net”から無償でダウンロード可能。Windows向けバイナリも用意されており、Windows 7/Server 2008 R2以降で利用できる。
「PHP 8」では実行時(JIT)コンパイラーが導入され、リクエストがくるとソースコードがネイティブコードにコンパイルされるようになった。もう一度同じ処理がリクエストされると、そのネイティブコードをそのまま実行することで処理を高速化する。「PHP」はインタープリターとしても十分高速だが、JITの導入により、とくに長時間実行されるアプリで1.5~2倍の処理速度向上が見込める。
言語機能としては、以下の機能が導入された。
- Union Types:“int|float”のように任意の複数の型を表せる
- Named Arguments:名前付き引数。省略可能な引数をスキップしたり、コードを読みやすく記述できる
- Match Expressions:switch文を式として記述
- Attributes:関数などにメタデータを埋め込む
- Constructor Property Promotion:コンストラクターでメンバーの処理を簡潔に記述
- Nullsafe Operator:“?”演算子でnullチェック
- Weak Maps:弱参照のオブジェクトをキーに利用できるマップ
そのほかにも、比較演算子(==)の挙動が見直されたり、ソートアルゴリズムが安定的になる(順序が毎回同じになる)などの変更が加えられた。その影響で「PHP 7」との互換性は多少損なわれており、「PHP 7」コードを「PHP 8」で動作させるには手直しが必要になる見込み。とはいえ、最近のバージョンで非推奨になった仕様を利用していなければ、修正点はそれほど多くはならないという。