Article
PHP Version Compatibility Tables
Verified feature and support matrices for planning PHP upgrades, with careful marking where details are version-specific.
Compatibility tables help managers and engineers share one picture of reality. Dates below for support status were verified from php.net/supported-versions.php on 2026-08-09. Feature rows summarize official migration guides; always re-check php.net before a freeze.
Support status (verified 2026-08-09)
| Branch | Status | Active until | Security until |
|---|---|---|---|
| 8.5 | Active | 2027-12-31 | 2029-12-31 |
| 8.4 | Active | 2026-12-31 | 2028-12-31 |
| 8.3 | Security-only | 2025-12-31 (ended) | 2027-12-31 |
| 8.2 | Security-only | 2024-12-31 (ended) | 2026-12-31 |
| 8.1 and older | EOL | — | — |
High-impact language / API changes
| Topic | 5.6 | 7.4 | 8.0 | 8.1 | 8.2 | 8.3 | 8.4 | 8.5 |
|---|---|---|---|---|---|---|---|---|
ext/mysql (mysql_*) | Available (deprecated since 5.5) | Removed (since 7.0) | Removed | Removed | Removed | Removed | Removed | Removed |
ext/ereg (ereg/split) | Available (deprecated) | Removed (since 7.0) | Removed | Removed | Removed | Removed | Removed | Removed |
| ext/mcrypt | Available | Removed (since 7.2) | Removed | Removed | Removed | Removed | Removed | Removed |
each() / create_function() | Available | Deprecated (7.2) | Removed | Removed | Removed | Removed | Removed | Removed |
| Null to non-nullable internal params | Coerced | Coerced | Coerced | Deprecated | Deprecated | Deprecated | Deprecated | Deprecated* |
| Dynamic properties | Allowed | Allowed | Allowed | Allowed | Deprecated | Deprecated | Deprecated | Deprecated* |
utf8_encode/utf8_decode | Available | Available | Available | Available | Deprecated | Deprecated | Deprecated | Deprecated* |
| Opcache built into binary | Extension | Extension | Extension | Extension | Extension | Extension | Extension | Always built-in |
*Deprecated status may become removals in a future major/minor—confirm current php.net docs before relying on continued availability. Do not invent unreleased PHP versions beyond 8.5.
How to use the matrix
Pick source and target columns, open the matching step guide (for example 8.1→8.2), and validate code with compatibility checker. Unknown cells for obscure PECL extensions should be marked unknown until tested on your image—not assumed portable.
Related scanners: PHP Version Compatibility Checker · PHP Deprecated Checker.
Related reading
- Composer Modernization Center Add Composer to legacy PHP projects, migrate includes to autoloading, set platform constraints, and replace a…
- PHP 5 to Modern PHP: Complete Incremental Migration Guide A deep, production-minded path from PHP 5.x codebases to supported PHP 8.x: removed extensions, charset, PDO,…
- PHP Security Modernization for Legacy Applications Upgrade inherited PHP security practices: prepared statements, password hashing, sessions, CSRF, XSS escaping…
- PHP 7 to PHP 8 Migration Guide Deep guide to PHP 8.0 breaking changes that matter for PHP 7 applications, with upgrade tactics through suppo…
- Inheriting a Legacy PHP Application A first-30-days playbook for developers handed an unfamiliar PHP codebase: runtime truth, risk triage, and sa…