2013-08-16 3 views
0

IF의 일련의 조건에서 원하는 결과를 얻을 수 없습니다.여러 조건이있는 IF 문

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

변수 $ varteam부터는 모든 비교 값이 동일하면 true를, 그렇지 않으면 false를 얻고 싶습니다.

비교 된 값은 null 일 수도 있습니다.

내가 게시 한 코드는 모든 값이 같거나 다르지만 하나 이상의 값이 다른 경우 거짓 대신 true가됩니다.

왜 발생합니까?

+2

위양성을 얻었을 때 $ varteam은 (는) 무엇을 평등합니까? – Rooster

+0

$ varteam이 (와) 같은 것을 어떻게 볼 수 있습니까? – blips

+0

var_dump ($ varteam); 또는 print_r ($ varteam); – Rooster

답변

1

0null 또는 false이 섞여 있으면 위양성을 얻을 수 있다고 생각됩니다. 안전한쪽에 있으려면 == 대신 ===을 사용하면 유형 확인이 적용됩니다. 그런 식으로 null! == false! == 0.

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