PHP布尔值TRUE / FALSE?

时间:2009-12-07 06:11:23

标签: php boolean

我无法弄清楚这一点。

如果我输入:

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)
...

5 个答案:

答案 0 :(得分:18)

我不完全理解您的问题,但您可以使用您提供的任何示例,并提出以下警告:

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

但是,如果该函数的返回次数超过truefalse,您可能会对使用===感兴趣。 ===确实比较了变量的类型:"a" == truetrue,但"a" === true为false。

答案 1 :(得分:6)

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

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

答案 2 :(得分:5)

你可以这样做

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

答案 3 :(得分:3)

您可以使用if($result == TRUE),但由于if($result)就足够了,这是一种过度杀伤。

答案 4 :(得分:0)

if($variable) 
//something when truw
else 
//something else when false

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