Pourquoi mon expression ternaire ne fonctionne-t-elle pas ?

J'essaie de définir un indicateur pour afficher ou masquer un élément de page, mais il s'affiche toujours même lorsque l'expression est fausse.

$canMerge = ($condition1 && $condition2) ? 'true' : 'false';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>

Quoi de neuf ?

请先 登录 后评论

2 réponses

Polsonby

La valeur de 'false' est true. Vous devez supprimer les guillemets :

$canMerge = ($condition1 && $condition2) ? true : false;
请先 登录 后评论
Rudd Zwolinski

Ceci est cassé car 'false' en tant que chaîne sera évalué comme vrai en tant que booléen.

Cependant, il s'agit d'une expression ternaire inutile, car les valeurs résultantes sont simplement vrai et faux. Ce serait équivalent :

$canMerge = ($condition1 && $condition2);
请先 登录 后评论
  • 15 abonnés
  • 0 favoris,485 Feuilleter
  • Polsonby posée à 2023-03-02 22:31