Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.syntblaze.com/llms.txt

Use this file to discover all available pages before exploring further.

The && (Logical AND) operator is a binary operator that evaluates two operands and returns a boolean true strictly if both the left and right operands evaluate to true after implicit boolean coercion. If either or both operands evaluate to false, the expression returns false.
$result = $expression1 && $expression2;

Truth Table

The operator follows standard boolean logic:
  • true && true yields true
  • true && false yields false
  • false && true yields false
  • false && false yields false

Short-Circuit Evaluation

The && operator implements short-circuit evaluation. PHP evaluates the left operand first. If the left operand evaluates to false, the overall expression is guaranteed to be false. Consequently, PHP immediately terminates the evaluation and bypasses the right operand entirely.
// The function expensiveOperation() is never executed
$result = false && expensiveOperation(); 

Type Coercion (Juggling)

PHP does not require the operands to be strict booleans. Non-boolean values are implicitly cast to booleans during evaluation. Values considered “falsy” (e.g., 0, 0.0, "", "0", null, empty arrays) evaluate to false. All other values are “truthy” and evaluate to true.
$a = 1 && "text";    // true (both are truthy)
$b = 0 && "text";    // false (0 is falsy)
$c = [] && true;     // false (empty array is falsy)
Note: Regardless of the original types of the operands, the && operator always returns a strict boolean (true or false), unlike some languages (like JavaScript) that return the value of the last evaluated operand.

Operator Precedence

The && operator has a higher precedence than the assignment operator (=), but a lower precedence than comparison operators (like ==, >, <). This precedence dictates how expressions are grouped. It is a critical distinction when comparing && to PHP’s alternative logical AND operator, and, which has a lower precedence than assignment.
// && has higher precedence than =
$x = true && false; 
// Evaluated as: $x = (true && false)
// Result: $x is false

// 'and' has lower precedence than =
$y = true and false; 
// Evaluated as: ($y = true) and false
// Result: $y is true
Master PHP with Deep Grasping Methodology!Learn More