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

时间:2020-03-05 18:37:39  来源:igfitidea点击:

我试图设置一个标志以显示或者隐藏页面元素,但是即使表达式为false,它也始终显示。

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

这是怎么回事?

解决方案

回答

" false"的值为true。我们需要删除引号:

$canMerge = ($condition1 && $condition2) ? true : false;

回答

这是被破坏的,因为作为字符串的'false'将作为布尔值评估为true。

但是,这是不需要的三元表达式,因为结果值是简单的true和false。这将是等效的:

$canMerge = ($condition1 && $condition2);