PHP 8.3

最終更新:

当サイトはアフィリエイト広告を利用しています。

PHP 8.3 は 2023年11月23日にリリースされたバージョンです。Active Support(バグ修正)は 2025年12月31日にすでに終了しており、現在は Security Support(重大なセキュリティパッチのみ)期間中です。Security Support は 2027年12月31日に終了します。現在 PHP 8.3 を使用している環境では、移行期限を見据えて PHP 8.4 への移行計画を立てることを推奨します。

PHP 8.3 のサポート期限一覧

サポート種別 開始日 終了日 現在のステータス
Active Support(バグ修正・セキュリティパッチ) 2023-11-23 2025-12-31 終了済み
Security Support(セキュリティパッチのみ) 2026-01-01 2027-12-31 継続中

PHP のサポートポリシー
PHP の各バージョンは、リリース後 2年の Active Support追加1年の Security Support の合計3年間サポートされます。PHP 8.3 は 2023年11月リリースのため Security Support が 2027年12月31日に終了します。

PHP 8.x 各バージョンのサポート状況

バージョン Active Support 終了 EOL(Security Support終了) ステータス
PHP 8.1 2023-11-25 2025-12-31 EOL済み
PHP 8.2 2024-12-31(終了済み) 2026-12-31 Security Support中
PHP 8.3 2025-12-31(終了済み) 2027-12-31 Security Support中
PHP 8.4 2026-12-31 2028-12-31 Active Support中(最新)

基本情報

  • リリース日: 2023年11月23日
  • 最新バージョン: 8.3.31
  • Active Support 終了: 2025年12月31日(終了済み)
  • Security Support 終了(EOL): 2027年12月31日
  • 後継製品: PHP 8.4(推奨移行先)
  • 主な機能: 型付きクラス定数(Typed Class Constants)・json_validate() 関数・動的クラス定数参照・Randomizer クラスの拡張・#[Override] 属性

PHP 8.3 の主要な機能

型付きクラス定数(Typed Class Constants)

PHP 8.3 では、クラス定数に型を指定できるようになりました。これにより、定数の型安全性が向上し、継承時の型チェックが強制されます。

class Status {
    const string ACTIVE = 'active';
    const string INACTIVE = 'inactive';
    const int DEFAULT_TIMEOUT = 30;
}

interface HasVersion {
    const string VERSION = '1.0.0'; // インターフェースでも型指定可能
}

json_validate() 関数

JSON 文字列が有効かどうかを json_decode() でデコードせずに確認できる json_validate() 関数が追加されました。大きな JSON データのバリデーションでメモリ効率が改善されます。

$jsonString = '{"name": "test", "value": 123}';

// PHP 8.3 以降
if (json_validate($jsonString)) {
    $data = json_decode($jsonString, true);
}

#[Override] 属性

#[Override] 属性をメソッドに付けると、親クラスのメソッドをオーバーライドしていることを明示できます。親クラスのメソッドが削除・リネームされた場合にコンパイル時エラーが発生するため、継承バグを早期発見できます。

EOL後のリスクと移行の必要性

2027年12月31日以降、PHP 8.3 はサポート対象外となります。セキュリティパッチが提供されなくなるため、本番環境での継続使用にはリスクが伴います。

1. セキュリティパッチの停止

EOL 後に発見された PHP コアの脆弱性に対する公式パッチが提供されなくなります。Web アプリケーションサーバーとして使われる PHP の脆弱性は、インジェクション攻撃・認証バイパスなどの直接的なリスクに繋がります。

2. フレームワーク・CMS のサポート終了

Laravel・Symfony・WordPress などの主要フレームワーク・CMS は、PHP の EOL に合わせてサポートバージョンを引き上げます。PHP 8.3 のサポートが打ち切られると、フレームワークのセキュリティアップデートを適用できなくなる状況が発生します。

推奨される移行先

PHP 8.4 — 推奨(Active Support中・EOL: 2028年12月)

  • リリース日: 2024年11月21日
  • 最新バージョン: 8.4.21
  • Security Support EOL: 2028年12月31日
  • 主な追加機能(8.3比): プロパティフック・非対称可視性・array_find()等の新配列関数・Lazy Objects
  • メリット: 8.3 と高い互換性。EOL 2028年まで余裕を持った移行スケジュールを組める

PHP 8.3 → 8.4 移行時の注意点

互換性の高さ
PHP 8.3 → 8.4 は同じ 8.x 系のため、移行時の互換性問題は比較的少ないです。ただし、PHP 8.4 で非推奨になった関数・動作変更がある場合があります。E_DEPRECATED 警告を確認して修正してください。

HTML エスケープのデフォルト変更
htmlspecialchars() のデフォルト文字コードが PHP 8.1 以降 UTF-8 になっています。すでに対応済みの環境では影響はありません。

# PHP バージョン確認
php -v

# テスト環境での互換性確認
php -d error_reporting=E_ALL index.php

# Composer での依存関係チェック
composer check-platform-reqs --php-version 8.4

PHP アプリケーションのホスティング環境

共有ホスティング環境では、管理画面から PHP バージョンを 8.4 に切り替えて動作確認するのが最も簡単な移行方法です。VPS 環境では複数の PHP バージョンを並行インストールし、段階的に移行先の動作確認ができます。

広告

公式情報