ニュース

「PHP 8」が正式リリース ~JITの導入により、処理速度が大きく向上

比較演算子(==)の挙動も見直し。間違いにくく、シンプルなコード記述が可能に

 スクリプト言語「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倍の処理速度向上が見込める。

JITの導入により、処理速度が大きく向上

 言語機能としては、以下の機能が導入された。

  • Union Types:“int|float”のように任意の複数の型を表せる
  • Named Arguments:名前付き引数。省略可能な引数をスキップしたり、コードを読みやすく記述できる
  • Match Expressions:switch文を式として記述
  • Attributes:関数などにメタデータを埋め込む
  • Constructor Property Promotion:コンストラクターでメンバーの処理を簡潔に記述
  • Nullsafe Operator:“?”演算子でnullチェック
  • Weak Maps:弱参照のオブジェクトをキーに利用できるマップ

 そのほかにも、比較演算子(==)の挙動が見直されたり、ソートアルゴリズムが安定的になる(順序が毎回同じになる)などの変更が加えられた。その影響で「PHP 7」との互換性は多少損なわれており、「PHP 7」コードを「PHP 8」で動作させるには手直しが必要になる見込み。とはいえ、最近のバージョンで非推奨になった仕様を利用していなければ、修正点はそれほど多くはならないという。

比較演算子(==)の挙動が見直される