【问题标题】:PHP boolean TRUE / FALSE?PHP 布尔值 TRUE / FALSE?
【发布时间】:2009-12-07 06:11:23
【问题描述】:

我想不通。

如果我输入:

function myfunction(){
    ......
    if ...
        return TRUE;
    if ...
        return FALSE;
}

为什么我不能这样使用:

$result = myfunction();
if ($result == TRUE)
...
if ($result == FALSE)
...

或者我必须使用:

$result = myfunction();
if ($result == 1)
...
if ($result == 0)
...

或者这个:

$result = myfunction();
if ($result)
...
if (!$result)
...

【问题讨论】:

  • 小注释:代码如下:if … return true; else return false; 应该总是重写为return … === true;,或者,在类型安全的语言中,只需重写为return …;if 在这里根本没有意义,因为我们正在测试的条件已经对应于返回值。

标签: php boolean


【解决方案1】:

我不完全理解您的问题,但您可以使用您提供的任何示例,但需要注意以下几点:

如果你说if (a == TRUE)(或者,因为与true 的比较是多余的,所以只是if (a)),你必须明白PHP 会评估几个事情为真:1、2、987、“你好”、 ETC。;它们都是“真实”的值。这很少会成为问题,但您应该了解它。

但是,如果该函数可以返回多个truefalse,您可能有兴趣使用====== 确实比较了变量的类型:"a" == truetrue,但 "a" === true 是 false。

【讨论】:

    【解决方案2】:

    如果您不再需要使用结果变量 $result,我会做以下最短版本:

    if (myfunction()) {
        // something when true
    } else {
        // something else when false
    }
    

    【讨论】:

      【解决方案3】:

      你可以这样做

      $result = myfunction();
      if ($result === TRUE)
      ...
      if ($result === FALSE)
      ...
      

      【讨论】:

        【解决方案4】:

        您可以使用if($result == TRUE),但这有点过头了,因为if($result) 就足够了。

        【讨论】:

          【解决方案5】:
          if($variable) 
          //something when truw
          else 
          //something else when false
          

          请记住,值 -1 被视为 TRUE,就像任何其他非零(无论是负数还是正数)数一样。 FALSE 将是 0 obv...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-06
            • 2013-10-17
            • 1970-01-01
            • 2013-12-19
            • 2018-08-17
            相关资源
            最近更新 更多