「PHP 8.5」リリース コードの可読性が向上する「パイプ演算子」など多数の機能追加・変更:下位互換性のない変更、非推奨化も
「URI拡張モジュール」の追加、アトリビュートや警告・エラー処理の強化なども。
オープンソースソフトウェア団体のPHP Groupは2025年11月20日(米国時間)、PHP言語の最新版「PHP 8.5」を公開した。新構文や関数の追加や改善、下位互換性のない変更、非推奨化など、多数の変更が加わった。
URI拡張モジュール追加やパイプ演算子など新構文の追加
PHP 8.5では、RFC 3986とWHATWG URL標準に基づきURIやURLを安全にパース、編集するAPIを提供する新しいURI拡張モジュールが追加された。「uriparser」「Lexbor」のライブラリを利用した常時有効の仕組みとなり、従来の「parse_url()」関数と比べて正確さが強化された(参考)。
新たにパイプ演算子(|>)が導入され、中間変数を使用せずにcallable(呼び出し可能な関数やメソッド)を左から右へチェインできる。複雑な入れ子呼び出しを置き換え、コードの可読性向上が期待される。
「Clone With」構文によってclone()関数使用時に連想配列でプロパティ更新が可能となり、readonlyクラスにおけるwith-erパターンを簡潔に記述できるようになった。
staticなクロージャと第一級callableが定数式で利用できるようになった。これには、アトリビュートの引数、プロパティやパラメーターのデフォルト値、定数が含まれる。
関数の追加、改善
新たに「array_first()」「array_last()」関数が追加され、配列の最初と最後の値を簡潔に取得できるようになった。PHP 8.5では空配列の場合にnullを返す仕様で、「??」演算子と組み合わせやすくなったという。
持続的なcURL共有ハンドルの導入や「get_error_handler()」「et_exception_handler()」関数の追加などもあった。
アトリビュートの強化
PHP 8.0で加わったアトリビュートが強化された。
- 定数を対象にできる
- #[\Override] アトリビュートをプロパティに適用できる
- #[\Deprecated] アトリビュートをトレイトと定数に使用できる
- 戻り値未使用時に警告を出す「#[\NoDiscard]」アトリビュートの追加
警告・エラー処理の強化
- 「NAN」を他の型にキャストした際の警告表示
- floatをintにキャストする際、int表現不可能な値の場合に警告表示
- 「Fatal」エラー(実行時間の最大値の超過など)にバックトレース(関数呼び出しの履歴情報)が含まれるようになった
下位互換性のない変更、非推奨化も
下位互換性のない変更も複数含まれる。PHP Groupは既存コードに影響する主な変更点として以下を挙げている。
- バッククォート演算子による「shell_exec()」のエイリアス利用が非推奨化
- 正規化されていない型名(boolean、integer、double、binary)でのキャストの非推奨化
- 「disable_classes」INIディレクティブの削除
- switch文内のcase文末でのセミコロン利用の非推奨化
- 配列オフセットや「array_key_exists()」の引数へのnull利用が非推奨に
PHP Groupは、構文改善や型安全性の向上、処理系パフォーマンス向上を継続して進める方針で、変更点の詳細は「ChangeLog」および移行ガイドで確認するよう呼び掛けている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
PHP開発者の58%が「別の言語に移行しない」と回答、する場合の代替言語は?
JetBrainsは、PHP開発者エコシステムの現状調査レポート「The State of PHP 2025」を発表した。PHP開発者の7割が4年以上の使用経験を持つが、2025年は新規ユーザーの割合がわずかに上昇した。
世界の開発者に聞いた「AIに任せられるタスク、任せられないタスク」 JetBrains調査
JetBrainsは、開発者エコシステムの現状調査結果をまとめた年次レポート「The State of Developer Ecosystem 2025」を発表した。今回のレポートでは、特にAIと開発者の関わりの変化について詳しく分析している。
2024年のPHPは7.xからの移行が進み9割が8.x 人気のフレームワーク、エディタ、AIツールは?
JetBrainsは、PHP開発者エコシステムの現状調査レポート「The State of PHP 2024」を発表した。

