PHP has two sets of logical operators: &&
/ ||
, and and
/ or
. The difference between
the sets is precedence. Because and
/ or
have a lower precedence than almost any other operator, using them instead of
&&
/ ||
may not have the result you expect.
Noncompliant Code Example
$have_time = true;
$have_money = false;
$take_vacation = $have_time and $have_money; // Noncompliant. $take_vacation == true.
Compliant Solution
$have_time = true;
$have_money = false;
$take_vacation = $have_time && $have_money; // $take_vacation == false.