【发布时间】:2020-01-30 17:34:34
【问题描述】:
我想知道为什么我无法通过谷歌搜索找到答案?
你如何比较一个布尔变量是真还是假,我有 ff 代码:
$input['appointed_phases1'] is true 的值,而$input['appointed_phases2'] is false 的值:
$appointed_phases = 0;
if($input['appointed_phases1'] == true && $input['appointed_phases2'] == true){
$appointed_phases = 3;
}elseif($input['appointed_phases1'] == true && $input['appointed_phases2'] == false){
$appointed_phases = 1;
}elseif($input['appointed_phases1'] == false && $input['appointed_phases2'] == true){
$appointed_phases = 2;
}else{
$appointed_phases = 0;
}
由于某种原因,$appointed_phases 的值始终为 3
【问题讨论】:
-
显示
var_dump($input['appointed_phases1'])和var_dump($input['appointed_phases2'])的输出。我怀疑它们是字符串而不是实际的布尔值。在这种情况下,类型杂耍将使两个比较等于true,从而使第一个条件始终触发。 -
您可以使用二进制位使其更简单。当
2和1都设置时为3,当仅设置2时为2,当仅设置1时为1,否则为0。 -
在检查布尔值时,您需要始终使用严格的比较运算符
===而不是==。
标签: php