PHP の最新バージョンは 8.5 - バージョン履歴と各版の変更点・サポート期限

PHP の最新バージョンは 8.5 - バージョン履歴と各版の変更点・サポート期限

作成日:
読了:約27分
更新日:

当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。

結論から書くと、2026年10月27日時点の PHP の最新バージョンは PHP 8.5(最新パッチは 2026年10月21日公開の 8.5.12)です。8.5 は2027年末までアクティブサポート、2029年末までセキュリティサポートの対象です。次のバージョンは PHP 9.0 ではなく PHP 8.6 で、2026年11月19日の正式リリース(GA)に向けてリリース候補版(RC)の段階にあります。

CAUTION

2026年10月21日に、サポート中の全ブランチで緊急のセキュリティリリース(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35)が出ました。認証なしのリモートコード実行(RCE)につながる重大な脆弱性2件(CVE-2026-109618、CVE-2026-109619)の修正で、php.net は全ユーザーにすぐの更新を呼びかけています。詳しくは下の「2026年10月21日のセキュリティリリース」と、構成ごとの対応方法をまとめた「PHP2Shell(CVE-2026-109618 / CVE-2026-109619)とは」を参照してください。

PHP は1995年の誕生以来、「気軽なテンプレート言語」から「型と高速 JIT を備えたモダンな言語」へと大きく姿を変えてきました。世界の Web の多く(WordPress を含む)を支え続けながら、ここ10年ほどで別物と言ってよいほど進化しています。

この記事では、まず最新バージョンとサポート期限を示したうえで、PHP のバージョン履歴を各版の変更点と追加機能とともに整理します。最新の PHP 8.5・PHP 8.4、次期 PHP 8.6 は php.net 公式・PHP Wiki・php-src の情報をもとに裏取りし、それ以前は確立した歴史としてまとめます。

PHP の最新バージョン(2026年10月時点)

サポート中の4ブランチの最新パッチと、サポート期限は次のとおりです(php.net の Supported Versions と リリース一覧 で2026年10月27日に確認)。

ブランチ最新パッチリリース日アクティブサポートセキュリティサポート
8.58.5.122026-10-212027-12-31 まで2029-12-31 まで
8.48.4.272026-10-212026-12-31 まで2028-12-31 まで
8.38.3.362026-10-21終了(2025-12-31)2027-12-31 まで
8.28.2.352026-10-21終了(2024-12-31)2026-12-31 まで
8.1 以前-終了終了EOL(サポート切れ)

各版の初回リリースは、8.5 が2025-11-20、8.4 が2024-11-21、8.3 が2023-11-23、8.2 が2022-12-08 です。PHP は各マイナー版にアクティブサポート2年+セキュリティ修正2年を与え、終了日はいずれも年末の12月31日に揃えられています。アクティブサポート中はバグ修正とセキュリティ修正、セキュリティサポートのみの期間は重大なセキュリティ修正だけが提供されます。

WARNING

PHP 8.1 以前はすでに EOL(サポート終了)です。8.1 は2025年12月31日にサポートを終え、最後のリリースは 8.1.34 でした(php.net の Unsupported Branches)。また 8.2 は2026年12月31日で EOL を迎えます。8.2 以前で本番運用しているなら、年内に 8.4 以降(できれば 8.5)への移行計画を立ててください。古い PHP 7 系・5 系を動かしている環境は、脆弱性が放置される状態です。

NOTE

最新パッチ番号は月に1回程度のペースで更新されます。導入時点の最新版は php.net のダウンロードページ や ChangeLog で確認してください。手元のバージョンは php -v で確認できます。

2026年10月21日のセキュリティリリース

php.net は10月20日に重大なセキュリティリリースを予告し、10月21日 14:00 UTC(日本時間 23:00)に 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 を同時に公開しました(php.net のセキュリティアドバイザリ)。修正された脆弱性は次の2件で、どちらも CVSS v4.0 で 9.2、GitHub のアドバイザリでは Critical です。

CVE内容アドバイザリ
CVE-2026-109618RCE via OOM corruption。メモリ不足の処理が、リクエストの内部データを初期化している途中で PHP を止めてしまい、後片付けのときにその不完全なデータを正しいものとして扱ってしまうGHSA-w8hw-w9fx-j79w
CVE-2026-109619RCE via stale global state。リクエストごとの内部状態が、メモリを解放した後も残り、同じワーカーが次に処理するリクエストで使われてしまうGHSA-6wmf-4rv5-p3rp
  • 影響を受ける環境: Web リクエストを処理するすべての PHP(PHP-FPM、Apache の mod_php、php-cgi、FrankenPHP、LiteSpeed)。php.net は mod_php のリスクが最も高いとしていて、認証なしのリクエストがアプリケーションのコードより前に攻撃を起こせることが実証されています。
  • 対応: 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 へ更新する。Linux ディストリビューションや LTS ベンダーには事前にパッチが渡されているので、OS のパッケージで入れている場合はベンダーの更新を確認します。
  • 8.1 以前: PHP プロジェクトからの更新はありません。ただし今回は深刻度を踏まえて、7.4 / 8.0 / 8.1 向けに最小限のソースパッチが公開されています。ソースからビルドしている場合以外は、ベンダーのバックポートを確認するか、サポート中の版へ上げてください。
  • すぐに更新できない場合: php.net は memory_limit=-1 や post_max_size を小さくするなどの緩和策を挙げていますが、「更新だけが完全な対策」としています。
  • 10月23日には追加の情報(php.net)として、次の通常リリースまで session.upload_progress.enabled=0 にしておくことが勧められています。session.serialize_handler を実行時に ini_set() で php へ切り替えるなど、まれな設定の組み合わせでだけ起こる問題(CVE-2026-115560)です。
  • 10月26日には、Windows 版のビルドが 8.5.12-1 などに更新されました。同梱の Brotli の脆弱性(CVE-2026-111497)を直したもので、Windows 版を使っている場合だけ関係します。

手元のバージョンは php -v で確認できます。Web サーバーで使っている PHP と CLI の PHP が別のこともあるので、phpinfo() などで実際に動いている版も確かめてください。

2件の脆弱性の仕組みと、mod_php・PHP-FPM・Docker・レンタルサーバーなど構成ごとの対応方法は「PHP2Shell(CVE-2026-109618 / CVE-2026-109619)とは」にまとめています。

次期バージョン PHP 8.6 の状況

8.5 の次は PHP 8.6 です。PHP Wiki の PHP 8.6 リリース計画ページ では、11月下旬の GA を目標に次のスケジュールが組まれています(2026年10月27日時点。PHP 9.0 のリリース計画ページは存在しません)。

日付リリース
2026-07-02Alpha 1
2026-07-16Alpha 2
2026-07-30Alpha 3
2026-08-13Beta 1(ソフトフィーチャーフリーズ)
2026-08-27Beta 2
2026-09-10Beta 3
2026-09-22ハードフィーチャーフリーズ
2026-09-24RC2(RC1 はパッケージングのミスにより欠番)
2026-10-08RC3
2026-10-21RC4(10月21日のセキュリティ修正を含む)
2026-11-05RC5(予定)
2026-11-19GA(正式リリース予定)

php-src の 8.6 ブランチの UPGRADING と RFC 一覧で「PHP 8.6 で実装済み」とされている主な変更は次のとおりです。

  • 部分適用(Partial Function Application): 引数の一部を ? で残した呼び出しから、残りの引数を受け取るクロージャを作れる(RFC)。8.5 のパイプ演算子と組み合わせやすい
  • clamp() 関数: 値を最小値・最大値の範囲に収める(RFC)
  • readonly プロパティのデフォルト値(RFC)
  • クラス定数(enum の case を含む)への #[\Override]、enum での __debugInfo() 定義
  • 新しいクラス・enum: Time\Duration クラス、SortDirection enum、ポーリング API(Io\Poll 名前空間)
  • セッションの安全なデフォルト値: session.use_strict_mode と session.cookie_httponly が 1、session.cookie_samesite が Lax に変更(RFC)。クロスサイト POST でセッション Cookie を送る前提のアプリは設定の見直しが必要
  • 非推奨: __construct() / __destruct() から値を返すこと、mbregex(Oniguruma のメンテナンス終了に伴う)など
PHP 8.6(RC 段階): 部分適用と clamp()
// 部分適用: ? の位置に後から引数が入る
$result = array_map(str_replace('hello', 'hi', ?), $arr);
 
// clamp: 範囲外なら最も近い境界値を返す
echo clamp($percentage, min: 0, max: 100);

NOTE

PHP 8.6 はまだリリース候補(RC)段階で、本番利用は非推奨です。GA までに仕様や日程が変わる可能性があるため、正式リリース後に php.net の発表で最終的な内容を確認してください。

PHP 5 系: オブジェクト指向と言語機能の整備(2004〜)

PHP 5.0(2004年)は Zend Engine 2 を載せ、本格的なオブジェクト指向を導入した転換点でした。可視性(public/private/protected)、抽象クラス、インターフェース、例外などがここで整います。その後のマイナー版で、現代でも使う土台が揃いました。

  • 5.3(2009): 名前空間、クロージャ(無名関数)、遅延静的束縛(late static binding)、__callStatic、NOWDOC
  • 5.4(2012): トレイト(trait)、短い配列構文 []、ビルトイン Web サーバー、クロージャ内の $this
  • 5.5(2013): ジェネレータ(yield)、finally、パスワードハッシュ API(password_hash())、OPcache の同梱
  • 5.6(2014): 可変長引数(...)と引数アンパック、定数式、べき乗演算子 **、use function / use const

NOTE

「PHP 6」は欠番です。Unicode 対応を目指した PHP 6 の開発は難航し、結局リリースされませんでした。その成果の一部は 5.x に取り込まれ、次のメジャーは一気に PHP 7 へ飛びます。

PHP 7 系: パフォーマンス革命と型の導入(2015〜)

PHP 7.0(2015年)は Zend Engine 3 により性能が約2倍に跳ね、同時に型を本格的に導入しました。「遅い言語」というイメージを覆した、もっとも重要なメジャーの一つです。

PHP 7.0(2015)

  • スカラー型宣言(int / float / string / bool)と戻り値の型宣言
  • Null 合体演算子 ??、宇宙船演算子 <=>(比較)
  • 無名クラス、Throwable / Error(致命的エラーを例外として捕捉)、intdiv()
PHP 7.0: 型と新演算子
function sum(int $a, int $b): int {
    return $a + $b;
}
 
$name = $_GET['name'] ?? 'guest'; // null合体
usort($list, fn($a, $b) => $a->age <=> $b->age); // 宇宙船

PHP 7.1〜7.4

  • 7.1(2016): Nullable 型 ?T、void 戻り値、iterable 型、クラス定数の可視性、複数例外の multi-catch
  • 7.2(2017): object 型、Sodium(libsodium)をコアに、Argon2 パスワードハッシュ
  • 7.3(2018): 柔軟なヒアドキュメント、関数呼び出しの末尾カンマ、array_key_first() / array_key_last()、JSON_THROW_ON_ERROR
  • 7.4(2019): 型付きプロパティ、アロー関数 fn()、FFI、プリロード、Null 合体代入 ??=、配列内スプレッド、数値リテラル区切り _
PHP 7.4: 型付きプロパティとアロー関数
class User {
    public int $id;
    public string $name;
}
 
$names = array_map(fn($u) => $u->name, $users);
$config['timeout'] ??= 30; // 未設定なら代入

PHP 8 系: モダン化(2020〜)

PHP 8 は、JIT コンパイラと一連の言語機能で、PHP を「モダンな静的型寄りの言語」へ押し上げました。ここからは各版を少し詳しく見ます。

PHP 8.0(2020)

  • JIT コンパイラ、Union 型(int|string)、名前付き引数
  • アトリビュート #[...](メタデータをコメントでなく言語機能で)
  • コンストラクタプロパティ昇格、match 式、Null 安全演算子 ?->
  • str_contains() / str_starts_with() / str_ends_with()、mixed 型、文字列と数値の比較の健全化
PHP 8.0: 昇格・match・nullsafe
class Point {
    public function __construct(
        public readonly int $x = 0,
        public readonly int $y = 0,
    ) {}
}
 
$label = match($status) {
    200, 201 => 'OK',
    404 => 'Not Found',
    default => 'Unknown',
};
 
$country = $user?->address?->country; // どこかがnullならnull

PHP 8.1(2021)

  • 列挙型(enum)、readonly プロパティ、Fiber(軽量並行処理)
  • 第一級callable構文 f(...)、純粋なインターセクション型、never 戻り値、初期化子での new
PHP 8.1: enum と readonly
enum Status: string {
    case Active = 'active';
    case Banned = 'banned';
}
 
class Order {
    public function __construct(
        public readonly string $id,
    ) {}
}

PHP 8.2(2022)

  • readonly クラス、DNF 型(選言標準形)、null / false / true を単独の型として
  • トレイト内の定数、動的プロパティの非推奨化(#[\AllowDynamicProperties] で明示)、新しい Random 拡張

PHP 8.3(2023)

  • 型付きクラス定数、動的なクラス定数フェッチ、#[\Override] アトリビュート
  • json_validate()(巨大 JSON を安価に検証)、Randomizer の追加メソッド、DateTime 例外の細分化

PHP 8.4(2024)

ここから php.net 公式の機能リストに基づきます。8.4 はプロパティの扱いを大きく変えた版です。

  • プロパティフック(property hooks): get / set をプロパティに直接書け、定型的なゲッター/セッターを削減
  • 非対称可視性(asymmetric visibility): public private(set) のように読みと書きで可視性を分けられる
  • new MyClass()->method(): new 式を括弧で囲まずにメソッド/プロパティへアクセス可能に
  • #[\Deprecated] アトリビュート: 自作の関数・メソッド・定数に非推奨マークを付けられる
  • array_find() / array_find_key() / array_any() / array_all(): 関数型の配列操作
  • HTML5 対応の DOM API: Dom\HTMLDocument / Dom\XMLDocument(querySelector() や classList 対応)
  • BCMath のオブジェクト API(BcMath\Number)、PDO のドライバ別サブクラス(Pdo\Sqlite 等)
  • 遅延オブジェクト(lazy objects)、IR Framework ベースの新しい JIT
PHP 8.4: プロパティフックと非対称可視性
class User {
    // 読みは public、書きは private
    public private(set) string $name;
 
    // プロパティフック(ゲッター/セッターを書かずに済む)
    public string $fullName {
        get => $this->first . ' ' . $this->last;
    }
}

PHP 8.5(2025)

2025年11月20日にリリースされた PHP 8.5 が、2026年10月時点の最新の安定版です(最新パッチは 8.5.12)。公式発表の目玉はこちらです。

  • パイプ演算子 |>: 値を左から右へ、複数の callable に順に通せる。中間変数なしで処理を連結できる
  • clone with: clone($obj, [...]) 構文でクローンしつつプロパティを更新。readonly クラスでの「with-er」パターンが簡単に
  • URI 拡張: RFC 3986 と WHATWG URL に準拠した組み込みの URL 解析・正規化(uriparser / Lexbor ベース)
  • #[\NoDiscard] アトリビュート: 戻り値が使われていないときに警告。API の安全性を上げる
  • 定数式での静的クロージャ・第一級callable(アトリビュート引数などで使える)
  • 永続的な cURL share ハンドル(curl_share_init_persistent())でリクエスト跨ぎの接続コストを削減
  • array_first() / array_last()(7.3 の array_key_first/last を補完)、get_error_handler() / get_exception_handler()
  • プロパティへの #[\Override]、定数を対象にできるアトリビュート、致命的エラーへのバックトレース付与
PHP 8.5: パイプ演算子と clone with
// パイプ演算子: 中間変数なしで連結
$slug = $title
    |> trim(...)
    |> (fn($s) => str_replace(' ', '-', $s))
    |> strtolower(...);
 
// clone with: readonly でも with-er パターンが簡単
final class Money {
    public function __construct(
        public readonly int $amount,
        public readonly string $currency,
    ) {}
    public function withAmount(int $amount): static {
        return clone($this, ['amount' => $amount]);
    }
}

主要機能の登場バージョン早見表

「この機能、いつから使える?」を引けるようにまとめます。

機能登場版
名前空間 / クロージャ5.3
トレイト / 短い配列構文 []5.4
ジェネレータ / password_hash()5.5
スカラー型 / 戻り値型 / ?? / <=>7.0
Nullable 型 / void7.1
型付きプロパティ / アロー関数 fn()7.4
JIT / Union 型 / アトリビュート / match / ?->8.0
enum / readonly プロパティ / Fiber8.1
readonly クラス8.2
型付きクラス定数 / #[\Override] / json_validate()8.3
プロパティフック / 非対称可視性 / array_find()8.4
パイプ演算子 / clone with / URI 拡張8.5
部分適用 / clamp() / readonly プロパティのデフォルト値8.6(2026年11月 GA 予定)

移行・選定の指針

  • 新規なら 8.5。最新の安定版で、2029年末までセキュリティ対象。8.4 も2028年末までセキュリティ対象だが、アクティブサポート(通常のバグ修正)は2026年末で終わる
  • EOL 版(8.1 以前)は最優先で脱出。8.2 も2026年12月31日で EOL になるため、8.2 で運用中なら年内に 8.4 / 8.5 へ
  • 8.6 は2026年11月19日 GA 予定。フレームワークや主要ライブラリの対応を待ってから上げるのが無難。セッション設定のデフォルト変更など、挙動が変わる点は事前に確認しておく
  • メジャー/マイナーを跨ぐときは公式の移行ガイド(migrationXX ページ)の非推奨・破壊的変更を必ず確認。動的プロパティ(8.2 で非推奨)など、地味だが効く変更がある
  • パフォーマンスは 7.0 で一段、8.0 の JIT、8.4 の新 JIT と継続的に向上。古い版からの移行は速度面でも素直に効く

まとめ

  • 2026年10月時点の PHP の最新バージョンは PHP 8.5(最新パッチ 8.5.12、2026-10-21)。パイプ演算子 |>・clone with・URI 拡張・#[\NoDiscard] などが目玉
  • 2026年10月21日に、全ブランチで認証なしの RCE を直す緊急のセキュリティリリースが出た。8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 未満なら早めに更新する
  • サポート中は 8.2 / 8.3 / 8.4 / 8.5。8.2 は2026年末で EOL、8.1 以前はすでに EOL
  • 次期は PHP 8.6(2026年11月19日 GA 予定)。部分適用・clamp()・readonly プロパティのデフォルト値・セッションの安全なデフォルト値などが入る見込み
  • PHP は 5 系で OOP を整え、7 系で性能と型、8 系でモダン化(JIT・enum・property hooks)と進化してきた
  • 「いつから使える?」は早見表で逆引きできる。移行時は公式の migration ページで非推奨・破壊的変更を確認

10年前の PHP と今の PHP は、もはや別の言語と言ってよいほどです。型・enum・JIT・property hooks まで揃った現在の PHP を、古い印象のまま敬遠するのはもったいない——というのが、この履歴をたどって見えてくる結論です。

参考リンク

PHP2Shell(CVE-2026-109618 / CVE-2026-109619)とは - PHP 本体の認証不要 RCE 2件の危険度と構成別の対応

PHP2Shell(CVE-2026-109618 / CVE-2026-109619)とは - PHP 本体の認証不要 RCE 2件の危険度と構成別の対応

約30分

2026年10月21日に PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 で修正された、認証不要のリモートコード実行(RCE)につながる2件の脆弱性 CVE-2026-109618 と CVE-2026-109619(通称 PHP2Shell)を、php.net・GitHub のアドバイザリ・NVD・各ディストリビューションの情報で整理します。それぞれの仕組みと危険度、mod_php・PHP-FPM・Docker・OS パッケージ・レンタルサーバーなど構成ごとの対応方法、すぐに更新できないときの緩和策まで。

WordPress セキュリティ対策の基本と実践 - 公式ハンドブックと脆弱性統計から優先順位を決める

WordPress セキュリティ対策の基本と実践 - 公式ハンドブックと脆弱性統計から優先順位を決める

約33分

WordPress サイトを守るための対策を、公式の Advanced Administration Handbook と Patchstack・Wordfence の脆弱性統計をもとに優先順位をつけて整理します。2025年に見つかった脆弱性の91%はプラグイン、悪用までの中央値は5時間という現実から、更新と自動更新の設定、プラグインの選び方と減らし方、2要素認証とレート制限によるログイン保護、wp-config.php の定数とファイル権限、WP-CLI のチェックサム検証による改ざん検知、バックアップと改ざんされたときの手順、そして効果が限定的な対策まで、設定例とチェックリスト付きでまとめます。

Python 3.15 の新機能 - lazy imports と UTF-8 デフォルト化で何が変わるか

Python 3.15 の新機能 - lazy imports と UTF-8 デフォルト化で何が変わるか

約27分

2026年10月9日リリース予定(当初予定は10月1日)の Python 3.15 を、公式ドキュメントと PEP を一次ソースに整理します。PEP 810 の明示的な lazy imports、PEP 686 による UTF-8 のデフォルト化、組み込み frozendict(PEP 814)と sentinel(PEP 661)、内包表記でのアンパック(PEP 798)、新しい profiling パッケージ、free-threaded ビルド向け Stable ABI まで、移行前に押さえておきたい差分と注意点をまとめました。

楽天市場のおすすめPR / 楽天アフィリエイト