B - Les versions de PHP, 2015 Ă 2026
Chaque version a sa section ci-dessous, avec sa date de sortie, sa fenĂȘtre de support et ses changements marquants. Les dates viennent de php.net (pages des versions maintenues, des fins de vie et des changelogs, vĂ©rifiĂ©es le 17 septembre 2026). Le support actif couvre les corrections de bugs et les correctifs de sĂ©curitĂ©, le support de sĂ©curitĂ© les correctifs de sĂ©curitĂ© seulement. Depuis la mise Ă jour du cycle de publication votĂ©e en 2024, les deux fenĂȘtres se terminent le 31 dĂ©cembre de leur derniĂšre annĂ©e.
| Version | Sortie | Support actif jusquâau | Support de sĂ©curitĂ© jusquâau |
|---|---|---|---|
| PHP 5.6 | 28 août 2014 | 19 janv. 2017 | 31 déc. 2018 |
| PHP 7.0 | 3 déc. 2015 | 3 déc. 2017 | 10 janv. 2019 |
| PHP 7.1 | 1er déc. 2016 | 1er déc. 2018 | 1er déc. 2019 |
| PHP 7.2 | 30 nov. 2017 | 30 nov. 2019 | 30 nov. 2020 |
| PHP 7.3 | 6 déc. 2018 | 6 déc. 2020 | 6 déc. 2021 |
| PHP 7.4 | 28 nov. 2019 | 28 nov. 2021 | 28 nov. 2022 |
| PHP 8.0 | 26 nov. 2020 | 26 nov. 2022 | 26 nov. 2023 |
| PHP 8.1 | 25 nov. 2021 | 25 nov. 2023 | 31 déc. 2025 |
| PHP 8.2 | 8 déc. 2022 | 31 déc. 2024 | 31 déc. 2026 |
| PHP 8.3 | 23 nov. 2023 | 31 déc. 2025 | 31 déc. 2027 |
| PHP 8.4 | 21 nov. 2024 | 31 déc. 2026 | 31 déc. 2028 |
| PHP 8.5 | 20 nov. 2025 | 31 déc. 2027 | 31 déc. 2029 |
Ce quâil faut retenir du tableau, ce sont onze versions annuelles consĂ©cutives, chacune sortie entre le 20 novembre et le 8 dĂ©cembre. Le calendrier de la suivante paraĂźt sur wiki.php.net des mois Ă lâavance, avec ses dates de gel des fonctionnalitĂ©s et de release candidate.
PHP 7.0, décembre 2015
- Nouveau moteur, avec une forte rĂ©duction de lâusage mĂ©moire et, sur le travail propre de lâinterprĂ©teur, Ă peu prĂšs deux fois la vitesse de PHP 5.6 ; voir DĂ©bit et latence pour lâaffirmation de lâĂ©diteur et la mesure synthĂ©tique indĂ©pendante, avec leurs rĂ©serves.
- Déclarations de types scalaires (
int,float,string,bool) pour les paramÚtres, et déclarations de types de retour. declare(strict_types=1).- Opérateur de fusion null
??, opérateur spaceship<=>. - Classes anonymes.
- Les erreurs du moteur deviennent des exceptions (hiérarchie
Error), si bien quâune erreur fatale peut ĂȘtre attrapĂ©e. - Suppression des fonctions
mysql_*, des fonctionsereg_*et des constructeurs Ă la PHP 4.
PHP 7.1 Ă 7.4, 2016 Ă 2019
- 7.1Â : types nullables (
?int), type de retourvoid,iterable, visibilité des constantes de classe. - 7.2 : type
object, hachage de mots de passe Argon2, Libsodium dans le cĆur. - 7.3Â : syntaxe heredoc assouplie,
is_countable(), erreurs JSON sous forme dâexceptions. - 7.4 : propriĂ©tĂ©s typĂ©es, fonctions flĂ©chĂ©es (
fn), préchargement OPcache, interface de fonctions étrangÚres (FFI), opérateur??=, retours covariants et paramÚtres contravariants.
PHP 8.0, novembre 2020
- Arguments nommés :
str_pad(string: 'a', length: 3). - Attributs :
#[Route('/home')], des métadonnées structurées lues par réflexion. - Promotion de propriétés dans le constructeur :
public function __construct(private int $x) {}. - Types union :
int|string $id. - Expression
match : comparaison stricte, pas de fallthrough, exhaustive. - Opérateur nullsafe :
$user?->address?->city. mixedetstaticcomme types.throwcomme expression.str_contains(),str_starts_with(),str_ends_with().- Interface
Stringable,WeakMap. - Compilateur JIT, Ă lâintĂ©rieur dâOPcache.
- Comparaisons chaßne-nombre assainies :
0 == 'foo'vautfalse. - Les fonctions internes lĂšvent
TypeErroretValueErrorau lieu dâĂ©mettre un avertissement et de renvoyernulloufalse.
PHP 8.1, novembre 2021
- ĂnumĂ©rations, pures et adossĂ©es.
- Propriétés
readonly. - Syntaxe de callable de premiÚre classe :
strlen(...). - Fibers : des coroutines à pile, la brique de base des bibliothÚques asynchrones.
newdans les initialiseurs.- Types intersection purs :
Countable&Traversable. - Type de retour
never, constantes de classefinal,array_is_list(), notation octale explicite.
PHP 8.2, décembre 2022
- Classes
readonly. - Types en forme normale disjonctive :
(A&B)|null. - Types
true,falseetnullautonomes. - Propriétés dynamiques dépréciées ;
#[\AllowDynamicProperties]rĂ©autorise une classe. #[\SensitiveParameter]pour masquer un argument dans les traces dâappel.- Constantes dans les traits,
Random\Randomizer.
PHP 8.3, novembre 2023
- Constantes de classe typées.
- Attribut
#[\Override] : le moteur vĂ©rifie quâune mĂ©thode parente existe. json_validate().- AccĂšs dynamique aux constantes de classe :
Foo::{$name}. - Les propriétés
readonlypeuvent ĂȘtre rĂ©initialisĂ©es dans__clone().
PHP 8.4, novembre 2024
- Hooks de propriété : la logique
getetsetdĂ©clarĂ©e sur la propriĂ©tĂ© elle-mĂȘme. - VisibilitĂ© asymĂ©trique :
public private(set) int $x. new Foo()->bar()sans parenthÚses englobantes.- Objets paresseux via la réflexion (
newLazyGhost(),newLazyProxy()). - Attribut
#[\Deprecated]. array_find(),array_find_key(),array_any(),array_all().mb_trim()et consorts,mb_ucfirst(),mb_lcfirst().- Nouvelle extension DOM avec un analyseur HTML5 (
Dom\HTMLDocument). - API objet pour BCMath (
BcMath\Number), sous-classes PDO par pilote (Pdo\Sqlite,Pdo\Mysql,Pdo\Pgsql). - Types de paramÚtres implicitement nullables dépréciés.
PHP 8.5, novembre 2025
- Opérateur pipe :
$value |> trim(...) |> strtoupper(...). cloneavec mise à jour de propriétés :clone($obj, ['prop' => $value]).- Attribut
#[\NoDiscard], avec le cast(void)pour le faire taire volontairement. array_first(),array_last().- Closures et callables de premiĂšre classe dans les expressions constantes (arguments dâattributs, valeurs par dĂ©faut, constantes).
- Attributs sur les constantes.
- Nouvelle extension
uri(Uri\Rfc3986\Uri,Uri\WhatWg\Url). - Les erreurs fatales incluent une trace dâappel.
get_error_handler(),get_exception_handler().- LâopĂ©rateur dâexĂ©cution shell entre accents graves est dĂ©prĂ©ciĂ©.