为什么我的三元表达式不起作用?
2022-08-30 16:38:45
我正在尝试设置一个标志来显示或隐藏页面元素,但即使表达式为假,它也总是显示。
$canMerge = ($condition1 && $condition2) ? 'true' : 'false';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>
怎么了?
我正在尝试设置一个标志来显示或隐藏页面元素,但即使表达式为假,它也总是显示。
$canMerge = ($condition1 && $condition2) ? 'true' : 'false';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>
怎么了?
这被打破了,因为作为字符串的“false”将作为布尔值计算为true。
但是,这是一个不需要的三元表达式,因为生成的值是简单的 true 和 false。这将是等效的:
$canMerge = ($condition1 && $condition2);
“false”的值是真的。您需要删除引号:
$canMerge = ($condition1 && $condition2) ? true : false;