La valeur de 'false' est true. Vous devez supprimer les guillemets :
$canMerge = ($condition1 && $condition2) ? true : false;
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 ?
La valeur de 'false' est true. Vous devez supprimer les guillemets :
$canMerge = ($condition1 && $condition2) ? true : false;
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);