PHP检查一个变量是否为真或假。

20 浏览
0 Comments

PHP检查一个变量是否为真或假。

我想知道为什么在谷歌搜索中找不到答案?

如何比较一个布尔变量是真还是假,我有以下代码:

$input['appointed_phases1']的值为true,而$input['appointed_phases2']的值为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。

0
0 Comments

问题原因:问题出现的原因是因为变量 $input['appointed_phases1'] 的值是一个字符串。在PHP中,任何非空的字符串值都会被判定为true。

解决方法:有两种解决方法可以解决这个问题。一种是将 $input['appointed_phases1'] 的值强制转换为布尔值,另一种是将这个值与字符串 'true' 进行比较,而不是与布尔值 true 进行比较。

以下是对应的代码示例:

// 方法一:将值强制转换为布尔值
$appointedPhases1 = (bool) $input['appointed_phases1'];
if ($appointedPhases1) {
   // 变量为true的处理逻辑
} else {
   // 变量为false的处理逻辑
}
// 方法二:将值与字符串进行比较
if ($input['appointed_phases1'] === 'true') {
   // 变量为true的处理逻辑
} else {
   // 变量为false的处理逻辑
}

这样就可以根据变量 $input['appointed_phases1'] 的真假值来执行相应的逻辑处理了。

0