PHP检查一个变量是否为真或假。
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。
问题原因:问题出现的原因是因为变量 $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']
的真假值来执行相应的逻辑处理了。