論理演算子を使用して変数をテストしていますが、AND &演算子は正常に動作しますが、OR | また、Either-OR ^は常に true です。
なんで?
$a = 6;
$b = 6;
if ($a OR $b == 3) {
echo 'true <br />';
}
else {
echo 'false <br />';
}
ブール値の結果を OR する必要があるため、英語のように読みすぎています。
if ($a == 3 || $b == 3)
それよりも
if ($a OR $b == 3)
これは優先順位の問題です。詳細については、 http://php.net/manual/en/language.operators.precedence.phpを参照してください。
他の両方の回答で、必要なコードが得られます。
$a = true
$b = true
if($a and $b) TRUE if both $a and $b are TRUE.