Je veux juste vous montrer quelques fonctionnalités cool de PHP 8.0
Argument nommé
Vous voyez quant vous voulez utiliser une fonction avec de multiple argument optionnels ?
function exampleFunction(
$param1,
$param2 = "param2",
$param3="param3",
$param4="param4")
{
# some actions
}
Si vous voulez appeler cette fonction en laissant les paramètres par défaut, sauf le dernier, vous deviez jusque-là tous les répéter ;
exampleFunction($param1,"param2","param3","param4-v2");
C'est bien trop long. Mais rassurez-vous, j'ai la solution pour vous. Avec Php 8.0, vous pouvez spécifier quel paramètre vous passé en donnant son nom. Cela permet de se soustraire à la contrainte de l'ordre des paramètres, et d'onc d'éviter de devoir réécrire tous les paramètres optionnels :
exampleFunction($param1,param4:"param4-v2");
Nullsafe operateur
Cette fois, on va parler d'objets. Is vous voulez accéder à la méthode d'un objet, vous devez vérifier que l'objet en question est bien initialisé. Pour cela vous allez surement écrire quelque chose qui ressemble à :
if(isset($parent) && $parent!= null)
{
$parent->method();
}
Mais en fait, vous pourriez vous contenter d'écrire :
$parent?->method();
C'est particulièrement utile quand vous voulez accéder à une valeur en enchainant les méthodes.
Par exemple, dans un MVC, si vous voulez accéder à un attribut de l'objet retourné par une méthode fetch d'un modèle, dans votre contrôler, is suffit d'écrire ;
$this?->model??->fetch($id)?->name;
Simplification de l'écriture des classes
Si vous écrivez une classe en PHP, vous devez définir les attributs et leur niveau de confidentialité. Avant, vous deviez les définir en dehors du constructeur. Ce qui veut dire que vous ne pouviez pas définir et initialiser l'attribut en même temps avec une valeur dépendant des paramètres du constructeur.
class Example{
public float $attribute;
public function __construct(
float $attribute,
) {
$this->attribute = $attribute;
}
}
Avec PHP 8.0, vous pouvez définir les attributs de votre class comme étant les paramètres de votre constructeur :
class Example{
public function __construct(
public float $attribute,
) {
}
}
Merci de m'avoir lu
Passez une bonne journée.
Bisous.
Vous pouvez retrouvez la version anglaise de ce post juste ici :
Top comments (0)