Maison  >  Article  >  développement back-end  >  Pourquoi ai-je besoin de parenthèses pour les opérateurs ternaires imbriqués ?

Pourquoi ai-je besoin de parenthèses pour les opérateurs ternaires imbriqués ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 09:04:30624parcourir

Why Do I Need Parentheses for Nested Ternary Operators?

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

Dans le domaine de la programmation, les opérateurs ternaires imbriqués peuvent être un outil précieux pour les instructions conditionnelles concises. Cependant, leur mise en œuvre peut parfois s’avérer délicate. Un défi récent rencontré par un utilisateur consistait à utiliser isset() sous une forme imbriquée :

isset($_POST['selectedTemplate'])?$_POST['selectedTemplate']:isset($_GET['selectedTemplate'])?$_GET['selectedTemplate']:0

L'utilisateur a été confronté à un problème avec cette expression et a demandé l'aide de la communauté des programmeurs. Examinons la solution qui a émergé :

Pour que les opérateurs ternaires imbriqués fonctionnent correctement, ils doivent être placés entre parenthèses. Cela garantit que les expressions sont évaluées dans l’ordre prévu. Voici le code corrigé :

$selectedTemplate = isset($_POST['selectedTemplate'])
                  ? $_POST['selectedTemplate']
                  : (
                       isset($_GET['selectedTemplate'])
                       ? $_GET['selectedTemplate']
                       : 0
                  );

Cependant, pour une maintenabilité et une clarté améliorées, l'utilisation d'une instruction if/else est une approche plus recommandée :

$selectTemplate = 0;

if (isset($_POST['selectedTemplate'])) {
    $selectTemplate = $_POST['selectedTemplate'];
} elseif (isset($_GET['selectedTemplate'])) {
    $selectTemplate = $_GET['selectedTemplate'];
}

Enfin, pour plus de simplicité et de facilité d'utilisation utilisation, cela vaut la peine d'envisager $_REQUEST :

$selectedTemplate = isset($_REQUEST['selectedTemplate'])
                  ? $_REQUEST['selectedTemplate']
                  : 0;

N'oubliez pas que le choix de l'approche dépend en fin de compte des exigences spécifiques de votre application. Bon codage, et que vos ternaires soient parfaitement imbriqués !

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