Expression match et arguments nommés
Remplacer un switch verbeux par match et utiliser des arguments nommés pour plus de clarté.
Expression match et arguments nommés est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
L’expression match
PHP 8.0 a introduit match, une alternative concise à switch qui utilise l’égalité stricte (===) et renvoie une valeur.
match et switch
Différences principales : match utilise une comparaison stricte, ne permet pas le passage automatique à la branche suivante et constitue une expression (elle renvoie une valeur).
<?php
$status = 2;
$label = match($status) {
1 => "active",
2 => "inactive",
3 => "banned",
default => "unknown",
};
echo $label; // "inactive"Plusieurs conditions par branche
Séparez plusieurs valeurs de match par des virgules pour les traiter avec le même résultat.
<?php
$code = 404;
$type = match($code) {
200, 201, 202 => "success",
400, 422 => "client error",
404 => "not found",
500, 503 => "server error",
default => "other",
};
echo $type; // "not found"match lève une exception sans correspondance
Si aucune branche ne correspond et qu’il n’y a pas de default, PHP lève une UnhandledMatchError, contrairement à switch qui poursuit silencieusement son exécution.
match comme expression
Comme match renvoie une valeur, vous pouvez l’utiliser directement dans une expression, comme argument de fonction, dans une instruction return ou à l’intérieur d’une interpolation de chaîne.
<?php
echo "Status: ".match($active) {
true => "ON",
false => "OFF",
};Arguments nommés
Les arguments nommés de PHP 8.0 vous permettent de transmettre des arguments à une fonction en indiquant le nom du paramètre, dans n’importe quel ordre.
<?php
function makeTag(string $tag, string $content, string $class = ""): string {
return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");Avantages des arguments nommés
Les arguments nommés améliorent la lisibilité des fonctions comportant de nombreux paramètres, permettent d’ignorer les paramètres facultatifs et clarifient la signification de chaque valeur.
Arguments nommés avec les fonctions intégrées
Les arguments nommés fonctionnent également avec les fonctions intégrées de PHP.
<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);Combinaison d’arguments nommés et positionnels
Vous pouvez mélanger les arguments positionnels et nommés, mais les arguments nommés doivent venir après les arguments positionnels.
<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");Arguments nommés dans array_map
Les arguments nommés sont particulièrement utiles avec les fonctions intégrées variadiques dont l’ordre des paramètres prête à confusion.
match dans du code réel
Remplacez les longues chaînes de if/elseif par match pour le routage des méthodes HTTP, la correspondance des codes d’état et les décisions de type énumération.
<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
"GET" => new GetHandler(),
"POST" => new PostHandler(),
"DELETE" => new DeleteHandler(),
default => throw new InvalidArgumentException("Unsupported method"),
};Résumé
match fournit un branchement strict, exhaustif et dépourvu de passage automatique à la branche suivante. Les arguments nommés améliorent la lisibilité des appels. Ces deux fonctionnalités constituent des améliorations majeures de PHP 8.0.
Vérification rapide
Que se passe-t-il lorsqu’aucune branche de match ne correspond et qu’il n’y a pas de valeur par défaut ?
Questions Fréquemment Posées
La leçon « Expression match et arguments nommés » est-elle gratuite ?
Oui — le texte complet de « Expression match et arguments nommés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Expression match et arguments nommés » ?
Remplacer un switch verbeux par match et utiliser des arguments nommés pour plus de clarté. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Expression match et arguments nommés » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Expression match et arguments nommés
- Opérateur nullsafe et types union
- Énumérations (Enums)
- Fibers : concurrence coopérative