PHP 8 compatibility

PHP is the language your website’s code runs on, and PHP 8 is its newest generation. Older code often needs changes before it runs on PHP 8. We find those changes, make them, and test them on a private copy of your site before anything goes live.

Start a rescue request → A person reviews every request. No obligation.

Not every PHP 8 version is supported

PHP 8.0 stopped getting security fixes on 26 Nov 2023. PHP 8.1 stopped getting security fixes on 31 Dec 2025. So “PHP 8 compatible” on its own is not the goal. The goal is a currently supported version, and the table on this page shows which ones those are today.

What PHP 8.0 changed, in plain words

PHP 8 is stricter. Older versions often carried on when the code was slightly wrong, showing a small warning or nothing at all. PHP 8 stops instead. The changes we fix most often:

  • Many old warnings became fatal errors (errors that stop the page). That is how “it used to just show a warning” becomes a blank page
  • Built in functions given the wrong kind of value now stop with an error (a TypeError) instead of a warning
  • Several older functions are gone completely: create_function, each, money_format and get_magic_quotes_gpc
  • Code written in the PHP 4 style (a setup function with the same name as its class) no longer runs as setup, so objects quietly miss it
  • Comparing a number with text changed: 0 == "abc" used to be true and is now false. That can change how logins, searches or filters behave without any error at all
  • The word “match” became part of the language (a reserved word), so any custom function or class called match breaks
  • Names written without quotes where text was meant (bare words) used to be guessed and now stop the page

What PHP 8.1 and 8.2 added, and what it means for plugins

The later PHP 8 versions mostly add warnings (deprecations) about things that will be removed in future. They don’t break the site today, but older plugins can fill the error log with them, which hides the warnings that matter and can slow a site down.

  • PHP 8.1: passing an empty value (null) to many built in functions, such as strlen, str_replace and trim
  • PHP 8.2: adding properties to an object on the fly (dynamic properties), which is very common in older plugins and themes
  • PHP 8.2: the utf8_encode and utf8_decode functions, and writing "${var}" inside text

On WordPress and similar sites most of the code comes from plugins and themes. Ones that are still maintained usually have a PHP 8 version. Abandoned ones, closed or not updated for years, will never get a fix and need replacing or patching. Encoded files (ionCube) also need a loader that supports the new PHP version, or they stop working entirely.

How we test on a copy

We take a full backup, then build a private staging copy of your site on a currently supported PHP 8 version. Your live site keeps running untouched. We scan the code with a checker for known problems (PHPCompatibility), then turn on error logging and work through every error and deprecation notice.

Then we test the site the way your customers and staff use it, because a home page can look fine while a form or payment step is broken:

  • Contact forms and the emails they send
  • Checkout and payments, logins and member areas
  • Search, image uploads and the admin area
  • Scheduled tasks (cron jobs), which on shared hosting can run on a different PHP version from the site

We clear caches while testing, because a page cache or PHP’s own cache (OPcache) can hide errors or keep showing old ones. Key pages are compared side by side with the live site.

Going live and keeping the site the same

The switch happens at a quiet time with a rollback plan: the host’s PHP setting can be switched back quickly if something unexpected appears. We watch the error logs for a few days afterwards, because some code only runs weekly or monthly.

Compatibility work is about the code underneath, not a redesign. Your design, content and hosting stay as they are wherever technically feasible. If something cannot sensibly be made compatible, we tell you before any work starts.

PHP versions and their support dates

Bug fixes come first; after that a version gets security fixes only, then nothing at all.

VersionReleasedBug fixes untilSecurity fixes untilStatus
PHP 5.6 28 Aug 2014 19 Jan 2017 31 Dec 2018 No longer supported
PHP 7.0 3 Dec 2015 4 Jan 2018 10 Jan 2019 No longer supported
PHP 7.1 1 Dec 2016 1 Dec 2018 1 Dec 2019 No longer supported
PHP 7.2 30 Nov 2017 30 Nov 2019 30 Nov 2020 No longer supported
PHP 7.3 6 Dec 2018 6 Dec 2020 6 Dec 2021 No longer supported
PHP 7.4 28 Nov 2019 28 Nov 2021 28 Nov 2022 No longer supported
PHP 8.0 26 Nov 2020 26 Nov 2022 26 Nov 2023 No longer supported
PHP 8.1 25 Nov 2021 25 Nov 2023 31 Dec 2025 No longer supported
PHP 8.2 8 Dec 2022 31 Dec 2024 31 Dec 2026 Supported
PHP 8.3 23 Nov 2023 31 Dec 2025 31 Dec 2027 Supported
PHP 8.4 21 Nov 2024 31 Dec 2026 31 Dec 2028 Supported
PHP 8.5 20 Nov 2025 31 Dec 2027 31 Dec 2029 Supported

Dates from php.net. Your host may offer only some of these versions.

Questions

My site works on PHP 7.4. Will it work on PHP 8?

Possibly, but often not without changes. The reliable way to know is to test a copy of the site on a currently supported PHP 8 version, which is part of our review.

Can a plugin tell me if my site is PHP 8 compatible?

Scanning tools can spot some problems but miss others, especially changes in behaviour such as how text and numbers are compared. We use them as a starting point and then test the site itself.

Which PHP 8 version should my site use?

A currently supported one that your host offers. The table on this page shows which versions get security fixes today and until when.

How it works

  1. 01

    Tell us what’s happening

    Share your web address, paste the warning from your host, or describe the problem. No PHP knowledge needed.

  2. 02

    We review

    A person looks at what you sent and works out what needs checking.

  3. 03

    We recommend a plan and quote

    You get the recommended approach, a clear scope and a price, including anything that needs further investigation.

  4. 04

    We test and upgrade once agreed

    Where feasible, changes are tested on a separate copy before going live. Nothing starts until you approve.

Let’s get your site on supported PHP.

Tell us what’s happening. A person replies.

Check my site for PHP 8 →