<documentation title="Require Explicit Boolean Operator Precedence"
>
<standard>
<![CDATA[
Forbids mixing different binary boolean operators (&&, ||, and, or, xor) within a single expression without making precedence clear using parentheses.
]]>
</standard>
<code_comparison>
<code title="Valid: Making precedence clear with parentheses.">
<![CDATA[
$one = false;
$two = false;
$three = true;
$result = <em>($one && $two) || $three</em>;
$result2 = <em>$one && ($two || $three)</em>;
$result3 = <em>($one && !$two) xor $three</em>;
$result4 = <em>$one && (!$two xor $three)</em>;
if (
<em>($result && !$result3)
|| (!$result && $result3)</em>
) {}
]]>
</code>
<code title="Invalid: Not using parentheses.">
<![CDATA[
$one = false;
$two = false;
$three = true;
$result = <em>$one && $two || $three</em>;
$result3 = <em>$one && !$two xor $three</em>;
if (
<em>$result && !$result3
|| !$result && $result3</em>
) {}
]]>
</code>
</code_comparison>
</documentation>
|