2013-08-16 160 views
0

我无法从IF中的一系列条件获得期望的结果。具有多个条件的IF语句

if (($varteam == $_POST['rteam1']) && ($varteam == $_POST['rteam2']) && ($varteam == $_POST['rteam3']) && ($varteam == $_POST['rteam4']) && ($varteam == $_POST['rteam5'])) 
{true} 
    else 
{false} 

从变量$ varteam我想获得真正的,如果所有的比较值是相同的开始,否则为false。

比较值也可能为空。

随着代码我已经发布它的作品,如果所有的价值是相等或不同,但我得到真正的而不是假如果一个或多个值不同。

为什么发生?

+2

当你得到误报时,$ varteam是否相等? – Rooster

+0

我怎样才能看到$ varteam等于什么? – blips

+0

var_dump($ varteam);或print_r($ varteam); – Rooster

回答

1

我猜你可能会得到误报,当你有0nullfalse混合。为了安全起见,请使用===而不是==,因此类型检查已生效。这样,null!== false!== 0

if (($varteam === $_POST['rteam1']) && 
    ($varteam === $_POST['rteam2']) && 
    ($varteam === $_POST['rteam3']) && 
    ($varteam === $_POST['rteam4']) && 
    ($varteam === $_POST['rteam5'])) 
{ 
    // true 
} 
else 
{ 
    // false 
}