Maison >développement back-end >tutoriel php >Comment puis-je implémenter correctement des opérateurs ternaires imbriqués en PHP pour éviter des résultats inattendus ?

Comment puis-je implémenter correctement des opérateurs ternaires imbriqués en PHP pour éviter des résultats inattendus ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 21:38:21418parcourir

How Can I Correctly Implement Nested Ternary Operators in PHP to Avoid Unexpected Results?

Opérateurs ternaires imbriqués en PHP : un casse-tête résolu

Les opérateurs ternaires imbriqués fournissent un moyen concis et puissant d'attribuer des valeurs de manière conditionnelle en PHP. Cependant, lorsque plusieurs opérateurs sont utilisés, une syntaxe appropriée devient cruciale.

Le problème

Considérez 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"
);

Malgré l'intention de sélectionnez une ville en fonction de la valeur de la province, le code attribue "city-4" à $Myprovince pour chaque champ.

La solution

Le problème réside dans le manque de parenthèses. Chaque opérateur ternaire doit être correctement imbriqué pour garantir une évaluation correcte. Le code mis à jour ci-dessous résout le problème :

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

Comment ça marche

L'opérateur ternaire le plus interne évalue la condition ($province == 8) et attribue "ville -3" si vrai ou passe à l'opérateur suivant si faux.

L'opérateur ternaire du milieu vérifie si $province est égal à 7 et attribue "city-2" si vrai ou passe à l'opérateur suivant.

Enfin, l'opérateur ternaire le plus externe évalue la condition ($province == 6) et attribue "city-1" si vrai ou passe à options restantes, en attribuant éventuellement « ville-4 » si $province est 30 ou « hors frontières » sinon.

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