“AND&”运算符工作正常,但“OR |”和Either-OR“^”始终为true

I am using logical operators to test variables but AND & operator work fine but OR | and Either-OR ^ always true.
Why?

$a = 6;
$b = 6;

if ($a OR $b == 3) {
    echo 'true <br />';
}
else {
    echo 'false <br />';
}

The issue is with your syntax.

You need to look at the expression separately.

if($a) OR if($b == 3)

is what you're doing.

What you want is:

if($a == 3 || $b == 3)

If you look at $a by itself, any value except for 0 will return true making the entire equation true thanks to the OR

Because you have to OR to Boolean results - you're reading it too much like English.

if ($a == 3 || $b == 3)

rather than

if ($a OR $b == 3)

It's a matter of precedence - see http://php.net/manual/en/language.operators.precedence.php for more details here.

Both the other answers give you the code you need.

$a = true
$b = true
if($a and $b)   TRUE if both $a and $b are TRUE.

Reference: http://php.net/manual/en/language.operators.logical.php