PHP 7.1

7.1 released 1 December 2016, latest 7.1.33.

PHP 7.1 reached end of life on 1 December 2019.

What changed

PHP 7.1 built on PHP 7.0 with nullable types, void return types, iterable and callable pseudo-types, symmetric array destructuring, class constant visibility, multi-catch exception handling, and support for keys in list-style destructuring. It also added the null-coalescing assignment operator, negative string offsets, and improvements to error handling and session behavior. The cycle deprecated several older features and behaviors, including the mcrypt extension, ext/mysql-related legacy patterns already removed from earlier lines, and some invalid or ambiguous calls that newer PHP versions reject more consistently.

What staying costs

PHP 7.1 has reached end of life, so it no longer receives upstream security fixes or bug fixes. A discovered vulnerability in the interpreter or bundled components must be addressed through distribution-specific backports, compensating controls, or a version upgrade. Remaining on this line also increases compatibility risk: current frameworks, libraries, operating-system packages, and build tools commonly require newer PHP releases, while dependencies that still run on 7.1 may themselves be outdated. The longer a codebase remains tied to 7.1, the more deprecated constructs, unsupported extensions, and obsolete dependency constraints can accumulate, making the eventual upgrade larger and less predictable.

What to do

Inventory every PHP runtime, CLI job, web application, extension, Composer dependency, and external package that depends on PHP 7.1. Select a supported target PHP line based on application and framework compatibility rather than treating 7.1 as a minor-version upgrade; moving directly to a current supported line may avoid repeated migration work. In a separate test environment, update Composer constraints and dependencies, then run the full test suite with error reporting enabled. Review PHP migration guidance for each intervening release, especially changes to type handling, warnings promoted to errors or exceptions, removed extensions, dynamic properties, string and array behavior, and stricter internal-function parameter validation. Replace deprecated or removed APIs, add explicit type and null handling where behavior was previously implicit, and test production-like workloads before rollout. Keep the old runtime available only for a controlled rollback period, and remove it once the upgraded deployment is stable.

We can tell you what moving off PHP 7.1 involves.

What it takes to move off PHP 7.1 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.

Not sure yet? Get my plan