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.