Maison >développement back-end >PHP8 >Exemple de nouvelles fonctionnalités en PHP8 : Comment utiliser les expressions de correspondance pour optimiser la logique du code ?

Exemple de nouvelles fonctionnalités en PHP8 : Comment utiliser les expressions de correspondance pour optimiser la logique du code ?

WBOY
WBOYoriginal
2023-09-12 08:28:41992parcourir

Exemple de nouvelles fonctionnalités en PHP8 : Comment utiliser les expressions de correspondance pour optimiser la logique du code ?

Exemple de nouvelles fonctionnalités de PHP8 : Comment utiliser les expressions de correspondance pour optimiser la logique du code ?

Avec la sortie de PHP8, il apporte de nombreuses nouvelles fonctionnalités qui enthousiasment les développeurs. L’une des nouvelles fonctionnalités les plus attendues concerne les expressions de correspondance.

Dans le passé, nous utilisions souvent plusieurs instructions if-else pour implémenter le jugement conditionnel et la logique de branchement. Cependant, une telle implémentation rend souvent le code verbeux et difficile à maintenir. L'introduction des expressions de correspondance nous offre un moyen plus simple et plus intuitif de gérer les jugements conditionnels.

La syntaxe de base d'une expression de correspondance est la suivante :

$result = match ($value) {
    pattern1 => expression1,
    pattern2 => expression2,
    // more patterns...
    patternN => expressionN,
};

Dans cette expression, $value est la valeur à faire correspondre, pattern est le modèle correspondant et expression est l'instruction d'exécution correspondant au modèle. Le résultat renvoyé par l'expression entière est la valeur de l'expression correspondante.

Regardons un exemple d'utilisation d'expressions de correspondance pour optimiser la logique du code précédent :

$color = 'red';

if ($color == 'red') {
    $result = 'Stop';
} elseif ($color == 'yellow') {
    $result = 'Prepare';
} elseif ($color == 'green') {
    $result = 'Go';
} else {
    $result = 'Unknown';
}

Le code ci-dessus utilise des instructions if-else pour effectuer des jugements conditionnels basés sur la valeur de $color, puis attribue différentes valeurs de $ résultat. . Cette implémentation est verbeuse et peu intuitive.

Maintenant, nous utilisons des expressions de correspondance pour réécrire le code ci-dessus :

$color = 'red';

$result = match ($color) {
    'red' => 'Stop',
    'yellow' => 'Prepare',
    'green' => 'Go',
    default => 'Unknown',
};

En utilisant des expressions de correspondance, nous pouvons simplifier plusieurs instructions if-else en un morceau de code plus intuitif. Dans la nouvelle implémentation, la valeur de $color correspondra au modèle correspondant, puis la valeur correspondante de $result sera renvoyée.

En plus de la correspondance de valeurs de base, les expressions de correspondance prennent également en charge la correspondance de modèles plus complexes. Par exemple, nous pouvons utiliser des caractères génériques (_) pour faire correspondre n'importe quelle valeur, ou nous pouvons utiliser des constantes, des variables, des expressions booléennes, etc. comme modèles.

De plus, nous pouvons également utiliser des expressions de correspondance imbriquées pour gérer une logique plus complexe. Par exemple :

$value = 100;

$result = match ($value) {
    1, 2, 3 => 'small',
    4, 5, 6 => 'medium',
    7, 8, 9 => 'large',
    default => match (true) {
        $value >= 100 => 'extra large',
        $value >= 10 => 'very large',
        default => 'unknown'
    },
};

Dans cet exemple, nous faisons d'abord correspondre la valeur de $value et renvoyons les résultats correspondants selon différents modèles. Dans le mode final par défaut, nous avons imbriqué une expression de correspondance pour gérer une logique plus complexe.

En résumé, l'expression de correspondance est une fonctionnalité puissante introduite dans PHP8. Elle nous offre un moyen plus simple et plus intuitif de gérer le jugement conditionnel et la logique de branchement. En utilisant des expressions de correspondance, nous pouvons réduire les longues instructions if-else et rendre le code plus facile à comprendre et à maintenir. Si vous n'avez pas encore essayé les expressions de correspondance, essayez de les utiliser dans votre prochain projet. Je pense que vous tomberez amoureux de sa simplicité et de sa puissance !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn