Maison >développement back-end >tutoriel php >Comment puis-je éviter les erreurs lors de l'imbrication d'opérateurs ternaires en PHP ?

Comment puis-je éviter les erreurs lors de l'imbrication d'opérateurs ternaires en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-16 15:08:14650parcourir

How Can I Avoid Errors When Nesting Ternary Operators in PHP?

Opérateurs ternaires imbriqués en PHP : pièges et solutions

En PHP, les opérateurs ternaires offrent un moyen concis et élégant d'attribuer des valeurs de manière conditionnelle. Bien qu'ils puissent constituer un outil puissant, il est essentiel de les utiliser correctement pour éviter des résultats inattendus.

Un problème courant survient lors de l'imbrication de plusieurs opérateurs ternaires, comme le démontre le code suivant :

$province = 7;
$Myprovince = (
($province == 6) ? "city-1" :
($province == 7) ? "city-2" :
($province == 8) ? "city-3" :
($province == 30) ? "city-4" : "out of borders"
);

Lors de l'exécution, ce code attribue incorrectement "city-4" à $Myprovince quelle que soit la valeur de $province. Le problème réside dans l'imbrication des opérateurs ternaires sans regroupement approprié.

Pour résoudre ce problème, il est nécessaire d'utiliser des parenthèses pour s'assurer que les opérateurs ternaires sont évalués dans le bon ordre. Le code corrigé ci-dessous :

$province = 7;
$Myprovince = (
  ($province == 6) ? "city-1" :
  (($province == 7) ? "city-2" :
   (($province == 8) ? "city-3" :
    (($province == 30) ? "city-4" : "out of borders")))
);

Avec cette modification, les opérateurs ternaires sont correctement imbriqués, et le code attribue correctement "city-2" à $Myprovince car $province est égal à 7.

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