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
Libérer: 2024-12-16 21:38:21
original
417 Les gens l'ont consulté

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"
);
Copier après la connexion

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")))
);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal