Skip to main content
An operator in PHP is a specific symbol or keyword that instructs the Zend Engine to perform a mathematical, relational, bitwise, or logical operation on one or more operands (values or variables) to produce a single resulting value. Operators are the fundamental constructs used to evaluate expressions and mutate state during script execution. Operators are structurally classified by their arity (the number of operands they accept):
  • Unary: Operates on a single operand (e.g., !$a).
  • Binary: Operates on two operands (e.g., $a + $b).
  • Ternary: Operates on three operands (e.g., $a ? $b : $c).

Arithmetic Operators

Perform standard mathematical operations. PHP automatically handles type conversion between integers and floats during evaluation.

Assignment Operators

Bind a value to a variable. The base assignment operator (=) evaluates to the assigned value, allowing chained assignments.

Comparison Operators

Evaluate the relationship between two operands, returning a boolean.

Logical Operators

Evaluate boolean logic. PHP implements short-circuit evaluation for these operators.

Bitwise Operators

Perform operations on the binary representations of integer or string operands. When applied to strings, the bitwise operators evaluate the ASCII values of the characters.

String Operators

Handle string concatenation.

Array Operators

Evaluate and manipulate arrays. The union operator (+) behaves uniquely by appending the right-hand array to the left-hand array; if keys exist in both arrays, the elements from the left-hand array are preserved, and the duplicate keys from the right-hand array are ignored.

Increment/Decrement Operators

Mutate a variable’s value by one. The position of the operator determines whether the value is returned before or after the mutation.

Error Control and Execution Operators

Specialized operators for environment and error handling.

Conditional and Null-Handling Operators

Provide shorthand syntax for control structures and null-state checks.

Type Operator

Evaluates object inheritance and interface implementation.

Precedence and Associativity

When multiple operators are present in a single expression, PHP relies on precedence and associativity rules:
  • Precedence: Determines the grouping of operators with different priorities (e.g., ** binds tighter than *, which binds tighter than +).
  • Associativity: Determines the evaluation direction for operators of equal precedence. Most arithmetic operators are left-associative ($a - $b - $c evaluates as ($a - $b) - $c), but the exponentiation operator (**) is right-associative (2 ** 3 ** 2 evaluates as 2 ** (3 ** 2)). Assignment operators are also right-associative ($a = $b = $c evaluates as $a = ($b = $c)).
  • Non-associativity: Certain operators cannot be chained. Notably, as of PHP 8.0, the ternary operator (? :) is non-associative. Chaining ternary operators without explicit parentheses results in a fatal error.
Tired of Poor PHP Skills? Fix That With Deep Grasping!Learn More