Nouvelle version de PHP 8.4 : aperçu des changements clés

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

PHP 8.4 est sorti : ce qui a changé et pourquoi c'est important



La communauté des développeurs a accueilli la version tant attendue de PHP 8.4 — une nouvelle version majeure de l'un des langages de programmation web les plus populaires. Cette mise à jour apporte un certain nombre d'améliorations significatives, notamment les très attendus property hooks, la visibilité asymétrique et une optimisation substantielle des performances. Analysons les changements clés que tout développeur PHP devrait connaître.



1. Property Hooks (Hooks de propriétés)

La nouveauté la plus marquante est la possibilité de définir des getters et des setters directement dans la déclaration d'une propriété de classe, sans écrire de méthodes séparées. Cela simplifie radicalement le travail avec les champs calculés ou validés.



class User{    public string $name {        set => $this->name = trim($value);        get => ucfirst($this->name);    }}


Auparavant, une telle logique nécessitait d'écrire des méthodes séparées getName() et setName(). Les property hooks rendent le code plus propre et plus lisible.



2. Visibilité asymétrique

Il est désormais possible de définir différents niveaux d'accès pour la lecture et l'écriture d'une propriété. Par exemple, une lecture publique mais une écriture protégée :



class Post{    public private(set) string $title;}


Cela évite d'avoir à créer des getters et des setters uniquement pour le contrôle d'accès, tout en préservant l'encapsulation.



3. JIT amélioré et performances

Dans PHP 8.4, le compilateur JIT (Just-In-Time) a été considérablement retravaillé. Les développeurs du noyau ont amélioré l'heuristique de prise de décision concernant la compilation et réduit les frais généraux lors de l'exécution des chemins de code chauds. Selon les tests préliminaires, le gain de performances dans les benchmarks synthétiques est de 10 % à 25 % par rapport à PHP 8.3.



  • Accélération des boucles et des fonctions récursives
  • Traitement amélioré des grands tableaux
  • Réduction de la consommation mémoire en mode JIT jusqu'à 15 %


4. Nouvelle syntaxe : déstructuration de tableaux avec types

Ajout de la possibilité de spécifier des types lors de la déstructuration de tableaux :



[$name, $age] = ['Иван', 30]; // avant[ string $name, int $age ] = ['Иван', 30]; // après


Cela améliore l'analyse statique et rend le code auto-documenté.



5. Changements dans la bibliothèque standard

  • Nouvelles fonctions : array_find(), array_find_key(), array_any() et array_all() — pour un travail plus concis avec les tableaux.
  • Mise à jour de PCRE2 : la bibliothèque d'expressions régulières a été mise à jour vers la version 10.44, corrigeant plusieurs erreurs rares.
  • Fonctions obsolètes : session_set_cookie_params() (au profit de ini_set()) et plusieurs fonctions internes ont été déclarées obsolètes.


6. Statut d'obsolescence (Deprecations)

Dans PHP 8.4, les éléments suivants sont marqués comme obsolètes :

  • Modification du type de retour via #[\\ReturnTypeWillChange] — une déclaration explicite est désormais requise.
  • Appel de isset() sur des non-tableaux (par exemple

Recommended Libraries