Polsonby Polsonby - 3 years ago 207
PHP Question

Why is my ternary expression not working?

I am trying to set a flag to show or hide a page element, but it always displays even when the expression is false.

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

What's up?

Answer Source

This is broken because 'false' as a string will evaluate to true as a boolean.

However, this is an unneeded ternary expression, because the resulting values are simple true and false. This would be equivalent:

$canMerge = ($condition1 && $condition2);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download