0

IF の一連の条件から目的の結果を得ることができません。

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

変数 $varteam から始めて、比較したすべての値が同一の場合は true、そうでない場合は false を取得します。

比較された値は null の場合もあります。

私が投稿したコードでは、すべての値が等しいか異なる場合に機能しますが、1 つ以上の値が異なる場合は false ではなく true になります。

なぜそれが起こるのですか?

4

1 に答える 1

1

またはと0混合すると、誤検知が発生する可能性があると推測しています。安全のために、型チェックが有効になっている代わりに使用してください。そのように、!== !== .nullfalse=====nullfalse0

if (($varteam === $_POST['rteam1']) &&
    ($varteam === $_POST['rteam2']) &&
    ($varteam === $_POST['rteam3']) &&
    ($varteam === $_POST['rteam4']) &&
    ($varteam === $_POST['rteam5'])) 
{
   // true
} 
else
{
   // false
}
于 2013-08-16T15:37:47.077 に答える