
PHP の最新バージョンは 8.5 - バージョン履歴と各版の変更点・サポート期限
当サイトは 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.5 | 8.5.12 | 2026-10-21 | 2027-12-31 まで | 2029-12-31 まで |
| 8.4 | 8.4.27 | 2026-10-21 | 2026-12-31 まで | 2028-12-31 まで |
| 8.3 | 8.3.36 | 2026-10-21 | 終了(2025-12-31) | 2027-12-31 まで |
| 8.2 | 8.2.35 | 2026-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-109618 | RCE via OOM corruption。メモリ不足の処理が、リクエストの内部データを初期化している途中で PHP を止めてしまい、後片付けのときにその不完全なデータを正しいものとして扱ってしまう | GHSA-w8hw-w9fx-j79w |
| CVE-2026-109619 | RCE 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-02 | Alpha 1 |
| 2026-07-16 | Alpha 2 |
| 2026-07-30 | Alpha 3 |
| 2026-08-13 | Beta 1(ソフトフィーチャーフリーズ) |
| 2026-08-27 | Beta 2 |
| 2026-09-10 | Beta 3 |
| 2026-09-22 | ハードフィーチャーフリーズ |
| 2026-09-24 | RC2(RC1 はパッケージングのミスにより欠番) |
| 2026-10-08 | RC3 |
| 2026-10-21 | RC4(10月21日のセキュリティ修正を含む) |
| 2026-11-05 | RC5(予定) |
| 2026-11-19 | GA(正式リリース予定) |
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クラス、SortDirectionenum、ポーリング API(Io\Poll名前空間) - セッションの安全なデフォルト値:
session.use_strict_modeとsession.cookie_httponlyが1、session.cookie_samesiteがLaxに変更(RFC)。クロスサイト POST でセッション Cookie を送る前提のアプリは設定の見直しが必要 - 非推奨:
__construct()/__destruct()から値を返すこと、mbregex(Oniguruma のメンテナンス終了に伴う)など
// 部分適用: ? の位置に後から引数が入る
$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()
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 合体代入??=、配列内スプレッド、数値リテラル区切り_
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型、文字列と数値の比較の健全化
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ならnullPHP 8.1(2021)
- 列挙型(enum)、readonly プロパティ、Fiber(軽量並行処理)
- 第一級callable構文
f(...)、純粋なインターセクション型、never戻り値、初期化子でのnew
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
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]、定数を対象にできるアトリビュート、致命的エラーへのバックトレース付与
// パイプ演算子: 中間変数なしで連結
$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 型 / void | 7.1 |
型付きプロパティ / アロー関数 fn() | 7.4 |
JIT / Union 型 / アトリビュート / match / ?-> | 8.0 |
| enum / readonly プロパティ / Fiber | 8.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 を、古い印象のまま敬遠するのはもったいない——というのが、この履歴をたどって見えてくる結論です。
参考リンク
- PHP 8.5 リリース発表(php.net 公式)
- PHP 8.4 リリース発表(php.net 公式)
- Supported Versions(php.net 公式)
- Unsupported Branches(php.net 公式)
- Releases(php.net 公式)
- PHP 8 ChangeLog(php.net 公式)
- Security advisory: Critical remote code execution vulnerabilities(php.net 公式、2026-10-21)
- PHP 8.6 リリース計画(PHP Wiki)
- PHP RFC 一覧(PHP Wiki)
- PHP 8.6 の UPGRADING(php-src)
- WordPress をヘッドレス CMS として使う(当ブログ)
- WordPress REST API ガイド(当ブログ)


