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 ?
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!