November 1, 2026
The Evolution of PHP: From 5.5 to 8.6
Stop by stop, from generators to partial function application, what PHP gained in each release and how its type system was built layer by layer.
PHP · Release by release
The Evolution of PHP: From 5.5 to 8.6
Stop by stop: what the language gained in each release.
Up to 2×
PHP 7.0 · Zend Engine 3
speed gain compared with PHP 5.6
According to the benchmark results on PHP.net, in real applications. The engine was rewritten; WordPress, Drupal and Magento tests also showed a clear improvement.
5.x and 7.x
From generators to typed properties
- 5.5 · generators and yield: values on demand, one at a time done
- 5.6 · variadics (...), exponentiation (**), constant expressions, use function done
- 7.0 · Zend Engine 3, scalar and return types, <=>, ??, anonymous classes done
- 7.1 · nullable types (?T) and the void return type done
- 7.2 · object type (November 2017) done
- 7.3 · flexible heredoc, short syntax in list assignments done
- 7.4 · typed properties and arrow functions (November 2019) done
8.x
From union types to partial function application
- 8.0 · union types, match, named arguments, attributes, ?-> done
- 8.1 · native enums and readonly properties done
- 8.2 · readonly classes, DNF types (December 8, 2022) done
- 8.3 · typed class constants, #[\Override], json_validate() done
- 8.4 · property hooks and asymmetric visibility done
- 8.5 · pipe operator (|>) done
- 8.6 · partial function application, expected on November 19, 2026 pending
Function signature: untyped to typed
Each gap closed by the next release
- 5.6: no scalar parameter types
- 5.6: no return types
- 7.0: a null return cannot be reflected in the return type
- 7.4: the signature accepts only one type per parameter
- Scalar type declarations (7.0)
- Return type declarations (7.0)
- Nullable ?T and void (7.1)
- Union types: int|string (8.0)
Type system
Layer by layer
Each release built on the one before; at the very bottom, the scalar types of 7.0.
- Typed class constants 8.3
- DNF, standalone null / true / false 8.2
- readonly properties 8.1
- Union types 8.0
- Typed properties 7.4
- Scalar and return types, ?T, void, object 7.0 → 7.2
PHP 8.6
The calendar is set in advance
- September 22 hard feature freeze, 2026 Only bug fixes afterwards
- November 19 expected release date, 2026 According to the release schedule
- 33 / 0 partial function application RFC vote The one visible syntax addition
- 39 / 3 warning for return from finally From the deprecation list
So there is nothing we learn in November — November only ships what was already settled in September.
Steady evolution
The language took a step every year.
One minor release every year since 2020; the last four releases fell between November 19 and 23.
Based on these articles
- muhammetsafak.com/blog/traversing-large-datasets-with-php-55-generators-and-yield/
- muhammetsafak.com/blog/php-5-6-new-features-variadic-functions-and-exponentiation-operator/
- muhammetsafak.com/blog/php-7-0-the-long-awaited-release-speed-and-type-declarations/
- muhammetsafak.com/blog/scalar-type-declarations-and-return-types-in-php-7/
- muhammetsafak.com/blog/php-7-1-nullable-types-and-void-return-type/
- muhammetsafak.com/blog/php-72-and-modern-php-habits/
- muhammetsafak.com/blog/php-7-3-flexible-heredoc-and-list-assignments/
- muhammetsafak.com/blog/php-7-4-typed-properties-and-arrow-functions/
- muhammetsafak.com/blog/preparing-for-php-8-union-types-match-named-arguments/
- muhammetsafak.com/blog/coding-with-php-8-0-attributes-and-nullsafe-operator/
- muhammetsafak.com/blog/php-8-1-safer-domain-models-with-enums-and-readonly/
- muhammetsafak.com/blog/php-8-2-readonly-classes-and-new-types/
- muhammetsafak.com/blog/php-8-3-typed-class-constants-and-new-additions/
- muhammetsafak.com/blog/php-8-4-property-hooks-and-asymmetric-visibility/
- muhammetsafak.com/blog/php-85-on-the-way-the-languages-maturing-face/
- muhammetsafak.com/blog/php-8-6-on-the-way-the-languages-stable-evolution/