我无法弄清楚这一点。
如果我输入:
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)
...
答案 0 :(得分:18)
我不完全理解您的问题,但您可以使用您提供的任何示例,并提出以下警告:
如果你说if (a == TRUE)
(或者,因为与true
的比较是多余的,只是if (a)
),你必须明白PHP会评估几件事情:1,2, 987,“你好”等;它们都是“真实”的价值观。这很少是一个问题,但你应该理解它。
但是,如果该函数的返回次数超过true
或false
,您可能会对使用===
感兴趣。 ===
确实比较了变量的类型:"a" == true
为true
,但"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 ...