Accueil Technologies PHP 7.4 : découvrez les améliorations de la nouvelle version
Les nouveautés de la version PHP 7.4

PHP 7.4 : découvrez les améliorations de la nouvelle version

par Jérémy PASTOURET

La communauté de PHP a décidé de publier une nouvelle version ! PHP 7.4 est un joli cadeau de Noël, en avance. Cette version est sortie le 28 novembre 2019 et possède de chouettes nouveautés.

Nouvelles fonctionnalités

Typage des propriétés d’une classe

On avance encore dans la propreté du code PHP. Il est désormais possible de typer les propriétés d’une classe.

Cela permet de contrôler le type de la valeur que l’on souhaite assigner. Dans l’exemple ci-dessus, une erreur est générée si l’on souhaite mettre une chaîne de caractères dans la propriété $nId. L’erreur renvoyée par PHP est la suivante :

Fatal error: Uncaught TypeError: Typed property Utilisateur::$id must be int, string used in ...

Fonctions anonymes – Arrow Functions

Il est vrai que les fonctions anonymes de PHP ne sont pas très agréables à lire. La communauté a décidé de faire quelque chose pour améliorer ce point.

La syntaxe à appliquer est la suivante :

fn(<variables>) => <expression unique>

Comme les conditions ternaires, ce n’est pas fait pour être complexe. Il faut se servir d’expressions simples ; sinon, il faut utiliser un classique if/else ou une fonction anonyme traditionnelle. De plus en PHP 7.4, les variables à l’extérieur de la fonction anonyme sont accessibles. Il n’y a pas besoin d’utiliser le terme use.

Insertion/Fusion de tableau

C’est une nouveauté que j’apprécie : il est désormais possible de dépiler les valeurs d’un tableau dans un autre tableau. Un exemple valant mieux qu’un long discours, je vous invite donc à lire l’exemple suivant :

L’utilisation des caractères ... permet de dépiler le contenu d’un tableau.

Séparateur dans les valeurs numériques

Lorsqu’on manipule des valeurs numériques, il n’est pas forcément simple de lire de gros nombres. Avec la dernière version de PHP, il est possible d’utiliser le caractère _ pour marquer des séparations. Ce caractère _ n’est pas pris pas en compte par PHP. Par exemple : la valeur 10_000_000 est transformée en 100000000.

Opérateur d’assignation Coalesce Nulle

La version 7 de PHP intégrait déjà l’opérateur ??. Celui-ci est très utile lorsqu’il faut récupérer des données tout en prévoyant des valeurs par défaut. L’exemple ci-dessous illustre cela :

Dans cette nouvelle version de PHP, l’opérateur d’assignation ??= fait son entrée. Cet opérateur permet d’assigner une valeur par défaut directement si la variable ne contient pas de données. Dans le cas ci-dessus, si le contenu de la variable $_POST['ville'] est nulle, la valeur Lyon sera assignée de manière automatique.

Typage de retour covariant

Attention au petit méli-mélo cérébral si vous n’êtes pas fan de la gestion des classes et de l’héritage.

En effet, on peut dire que PHP avait du mal avec l’héritage et le typage des valeurs de retour. Si vous utilisez le code précédent dans une autre version de PHP, l’erreur suivante est renvoyée :

Fatal error: Declaration of Sportif::achat(): Sport must be compatible with Consommateur::achat(): 

Nouveau type de paramètre dans la fonction strip_tags

La fonction strip_tags prend en second paramètre les tags PHP ou HTML autorisés. Dans les précédentes versions de PHP, ce deuxième paramètre est forcement de type chaîne de caractères (string). Dans la nouvelle version de PHP, il est possible de passer un tableau. C’est une manière plus propre et plus simple de procéder.

Eléments Deprecated

Les éléments Deprecated sont des fonctions/types/constantes et bien d’autres éléments encore utilisables dans la version 7.4 de PHP, mais qui seront supprimés dans la version 8. C’est la raison pour laquelle il est important de ne plus utiliser ces éléments Deprecated dès maintenant. Et surtout de trouver un moyen de les remplacer.

Liste des éléments Deprecated

  • Le type real
  • Les fonctions get_magic_quotes_gpc() etget_magic_quotes_runtime()
  • La fonction array_key_exists ne prendra plus d’objet en paramètre. Vous pouvez utiliser la fonction property_exists()
  • Il ne faut plus utiliser FILTER_SANITIZE_MAGIC_QUOTES mais FILTER_SANITIZE_ADD_SLASHES
  • Il existe d’autres éléments Deprecated utilisés par de très vieux projets PHP. Je vous invite donc à lire cette page de la communauté PHP si vous êtes dans ce cas.

Conclusion

Pour tester ces nouvelles fonctionnalités, je vous conseille d’aller faire un tour sur le site 3v4l.org. Ce service Web permet de tester du code PHP sous différentes versions.

Si vous êtes nostalgiques, ou si vous préférez toujours attendre une version en plus, vous pouvez consulter mon précédent article sur les nouveautés de PHP 7.2.

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.