Expressions And Operators: Logical Operators

Hack provides the conventional boolean operations.

Logical AND &&

The operator && calculates the boolean AND operation of its two operands.

if (youre_happy() && you_know_it()) {
  clap_your_hands();
}

If either operand does not have a boolean type, it is converted to a boolean first. The result is always a boolean.

&& is short circuiting, so it stops evaluation on the first false result.

$x = one() && two() && three();

The function three will not be called if one() or two() evaluate to false.

Logical OR ||

The operator || calculates the boolean OR operation of its two operands.

if ($weekday === 6 || $weekday === 7) {
  echo "It's a weekend";
}

If either operand does not have a boolean type, it is converted to a boolean first. The result is always a boolean.

|| is short circuiting, so it stops evaluation on the first true result.

$x = one() || two() || three();

The function three will not be called if one() or two() evaluate to true.

Logical NOT !

The operator ! calculate the boolean negation of its operand.

If the operand does not have a boolean type, it is converted to a boolean first. The result is always a boolean.

while (!is_connected()) {
  connect();
}

If the operand has type num, !$v is equivalent to $v === 0 || $v === 0.0.

Was This Page Useful?
Thank You!
Thank You! If you'd like to share more feedback, please file an issue.