为什么我的三元表达不起作用?

Pol*_*nby 24 php ternary-operator

我试图设置一个标志来显示或隐藏页面元素,但即使表达式为false,它也总是显示.

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

这是怎么回事?

Rud*_*ski 39

这是因为作为字符串的'false'将作为布尔值计算为true.

但是,这是一个不需要的三元表达式,因为结果值是简单的true和false.这相当于:

$canMerge = ($condition1 && $condition2);
Run Code Online (Sandbox Code Playgroud)