A developer in a plaid shirt works at a desk with a monitor and a laptop, a microphone on an arm above
Each PHP branch has its own end date. Check the one you run.

PHP end of life dates are set per branch. Current branches get two years of active support, then two years of security fixes only, ending on 31 December. PHP 8.1 reached end of life on 31 December 2025, and PHP 8.2 follows on 31 December 2026. PHP 8.3, 8.4 and 8.5 run to the end of 2027, 2028 and 2029.

Below: every recent branch with php.net's dates, why the PHP on your server may still be patched after php.net stops, what WordPress recommends, and what breaks between 7.4 and 8.x.

Key takeaways
  • PHP end of life isn't one date. Each branch gets two years of active support, then two years of security fixes only, ending on 31 December.
  • On 30 October 2026, php.net supports PHP 8.2, 8.3, 8.4 and 8.5. PHP 8.2 reaches end of life on 31 December 2026; 8.1 ended on 31 December 2025.
  • Red Hat lists PHP 7.4 on RHEL 8 and PHP 8.0 on RHEL 9 as full-life streams, so Red Hat's own packages can outlast php.net's dates.
  • Moving from 7.4 to 8.x changes behavior: 0 == "foo" is now false, and many warnings became errors. Find those before the upgrade does.
01

PHP end of life dates for every branch

Four branches are supported on 30 October 2026.

BranchReleasedActive support untilSecurity support until (end of life)
PHP 8.28 December 202231 December 2024 (ended)31 December 2026
PHP 8.323 November 202331 December 2025 (ended)31 December 2027
PHP 8.421 November 202431 December 202631 December 2028
PHP 8.520 November 202531 December 202731 December 2029

Checked 30 October 2026 against PHP's supported versions page.

Every older branch has reached end of life:

BranchEnd of lifeLast release
PHP 8.131 December 20258.1.34
PHP 8.026 November 20238.0.30
PHP 7.428 November 20227.4.33
PHP 7.36 December 20217.3.33
PHP 7.230 November 20207.2.34
PHP 7.11 December 20197.1.33
PHP 7.010 January 20197.0.33

Checked 30 October 2026 against PHP's end-of-life branches page.

02

Is PHP end of life?

  1. The language is maintained; individual branches reach end of life. PHP's supported versions page says "Each release branch of PHP is fully supported for two years from its initial stable release," and then "supported for two additional years for critical security issues only."

The four-year cycle is fairly new. The release cycle update RFC, dated March 2024 and accepted, added the second year of security fixes and moved end dates to 31 December. It applied from PHP 8.2 and gave 8.1 an extra year, which is why 8.1 ran to 31 December 2025 while older branches ended on scattered dates.

The middle phase matters. In security-only support, php.net releases "on an as-needed basis." PHP 8.2 and 8.3 are both there now, so a plain bug on either won't get a php.net fix.

03

When is PHP 8.2 end of life?

PHP 8.2 reaches end of life on 31 December 2026, after security-only support since 31 December 2024. The RFC gave it a year more than the original cycle would have. Next in line: PHP 8.3 end of life is 31 December 2027, and PHP 8.4 end of life is 31 December 2028, with 8.4's active support ending on 31 December 2026.

04

PHP end of life support: why your server may still be patched

php.net's date is when the PHP project stops. Your operating system vendor may support its own PHP package for longer. Red Hat's Application Streams life cycle page says "Each Application Stream component has a given life cycle, either the same as the RHEL release or shorter," and offers full-life streams: "a single stream that extends the duration of the underlying RHEL release."

RHEL releaseFull-life PHP streamShorter PHP streams, with Red Hat's retirement date
RHEL 8PHP 7.47.2 (May 2021), 7.3 (November 2021), 8.0 (November 2024), 8.2 (May 2029)
RHEL 9PHP 8.08.1 (May 2025), 8.2 (May 2029), 8.3 (May 2029)
RHEL 10PHP 8.38.4 (May 2029)

Checked 30 October 2026 against the same Red Hat page.

So Red Hat's own PHP 7.4 package on RHEL 8 sits inside Red Hat's support life cycle, years after php.net's end of life. A PHP 7.4 you compiled yourself, or installed from another repository, gets nothing from Red Hat. A retired stream is worse off still: Red Hat says "Retired/Deprecated Application Streams packages do not receive updates or Errata."

Two cautions: a scanner reading the version string will still flag "7.4," so keep Red Hat's policy page ready for the auditor, and your framework sets its own minimum PHP version regardless. On other distributions, check that vendor's own page. For the wider picture, see the risks of running end-of-life software.

05

What is the best PHP version?

The newest branch your framework, extensions and hosting all support. On 30 October 2026, PHP 8.5 has active support to 31 December 2027 and PHP 8.4 to 31 December 2026.

For the PHP version for WordPress, WordPress's requirements page recommends "PHP version 8.3 or greater." It says WordPress also works with PHP 7.4 and later, but warns those versions "have reached their official End Of Life and may expose your site to security vulnerabilities."

06

What breaks moving from PHP 7.4 to 8.x?

Most of it lands in PHP 8.0. PHP's 8.0 migration guide lists the incompatible changes, and the 8.1 and 8.2 guides list the deprecations that fill logs next.

ChangeFromWhat it does to old code
String to number comparison8.00 == "foo" and 0 == "" were true and are now false, so loose checks can take a different branch
Warnings became errors8.0Wrong argument counts to built-in functions throw ArgumentCountError; arithmetic on an array (other than array + array) throws TypeError
Default error_reporting is E_ALL8.0Notices and deprecations that were hidden now reach the logs
@ no longer hides fatal errors8.0Error handlers that test error_reporting() == 0 need a mask check instead
Removed functions and old constructors8.0create_function(), each() and money_format() are gone; a method named after its class is no longer a constructor
PDO error mode8.0The default changed from "silent" to "exceptions", so a failed query throws
Null to built-in functions8.1Passing null to a non-nullable parameter is deprecated
Dynamic properties8.2Creating undeclared properties is deprecated unless the class uses #[\AllowDynamicProperties]

The comparison change is the dangerous one, because nothing crashes: a check just takes a different path. Run the application on the new version in a test environment with every error logged, and pin current behavior with tests first, as in our guide to refactoring legacy code. See also our code audit checklist and how to reduce technical debt. PHP apps that run for years untouched are classic legacy system examples.

07

Before you choose a PHP version: how the 30-day assessment helps

A version number says how old the runtime is, not how much code depends on 7.x behavior. The 30-day assessment answers that. It's fixed in scope, at a price agreed before we start. Over 30 days we read the codebase and the architecture around it, map how the application fits together, cron jobs and libraries included, find the hidden architectural debt, and flag the security and compliance gaps, such as a PHP branch past end of life with nobody patching it.

The report says in plain language what is broken, what an upgrade to 8.4 or 8.5 would break, and what it would take to fix it. Your team can act on it, or we can do the upgrade as a separate project with its own scope and price. The report stands on its own either way. If the only question is which PHP a server runs and who patches it, we'll say so and point you to a narrower check.

Email Santosh a short list of your PHP applications, the version each runs, and where it's hosted.