【问题标题】:How to treat boolean?如何处理布尔值?
【发布时间】:2011-10-19 14:21:25
【问题描述】:

我从查询中收到一个布尔值,我想检查该布尔值是否大于零。是否可以修改处理资源以检查布尔值时使用的方法? (见;下面的资源处理示例:)

return (mysql_result($query, 0) == 1) ? true : false;

任何帮助表示赞赏。 提前谢谢你。

【问题讨论】:

    标签: php mysql boolean


    【解决方案1】:

    由于 PHP 将解释为字符串,您可以简单地将其转换为 (bool)

    return (bool)(mysql_result($query, 0));
    

    非零值将转换为TRUE。请注意,仅当返回值为 0 或 1 时才应执行此操作。负值将转换为 TRUE

    var_dump((bool)"1");
    // bool(true)
    var_dump((bool)"0");
    // bool(false)
    var_dump((bool)-2);
    // bool(true)
    

    【讨论】:

    • 我可以在你的代码示例中添加 true : false 吗,就像我给出的示例一样?
    • 你的回答没有错,但是php从mysql接收到的数据,总是一个字符串,包括整数、浮点数、布尔值
    • @NorS 不需要添加三元运算。通过(bool) 投射也有同样的作用。
    • @NorS 它将没有用,因为您将重新分配已经拥有的相同布尔值
    • @NorS Ohhhhhh。这是一个完全不同的问题——您没有从数据库中接收到布尔值,但$queryFALSE,因为您的查询失败了!在这里寻找许多相关的答案:stackoverflow.com/…
    【解决方案2】:

    只要return mysql_result($query, 0) == 1;

    不要做类似return $a_boolean_value ? true : false;的事情。

    【讨论】:

      【解决方案3】:

      我收到了来自查询的布尔值

      这不是真的。你不能从查询中得到布尔值,而只能得到一个字符串。

      我想检查布尔值是否大于零。

      1. 不能以这种方式测量布尔值。布尔值可以是真或假。或者,您喜欢它 - 零或非零。不是“更大”,而只是“不是”。

      2. PHP 中的“大于”运算符是>。所以,你可以在你的表达式中使用它而不是equal operator(== one)

      【讨论】:

      • 感谢您指出这一点。我对布尔类型感到困惑。
      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 2020-07-30
      • 1970-01-01
      相关资源
      最近更新 更多