【问题标题】:PHP check if a variable is true or false [duplicate]PHP检查变量是真还是假[重复]
【发布时间】: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,从而使第一个条件始终触发。
  • 您可以使用二进制位使其更简单。当21都设置时为3,当仅设置2时为2,当仅设置1时为1,否则为0。
  • 在检查布尔值时,您需要始终使用严格的比较运算符 === 而不是 ==

标签: php


【解决方案1】:

我认为您的 $input['appointed_phases1'] 包含一个字符串值。 在 PHP 中,任何不为空的字符串值都会计算为 true。

看到这个问题: How to convert string to boolean php

您可以将$input['appointed_phases1'] 的值转换为布尔值,或者您可以将此值与'true' 进行比较,而不是true

【讨论】:

    猜你喜欢
    • 2019-12-24
    • 2021-11-23
    • 1970-01-01
    • 2019-01-21
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2016-05-10
    相关资源
    最近更新 更多