2013-08-16 201 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 
}