## Expressions and Operators

An *expression* is a bit of PHP that can be
evaluated to produce a value. The simplest expressions are literal values and variables. A literal value
evaluates to itself, while a variable evaluates to the value stored in
the variable. More complex expressions can be formed using simple
expressions and operators .

An *operator* takes some values (the operands)
and does something (for instance, adds them together). Operators are
written as punctuation symbols—for instance, the `+`

and - familiar to us from math. Some
operators modify their operands, while most do not.

Table 2-3 summarizes the operators in PHP, many of which were borrowed from C and Perl. The column labeled “P” gives the operator’s precedence; the operators are listed in precedence order, from highest to lowest. The column labeled “A” gives the operator’s associativity, which can be L (left-to-right), R (right-to-left), or N (non-associative).

P | A | Operator | Operation |

19 | N | | Create new object |

18 | | Array subscript | |

17 | R | | Logical NOT |

R | | Bitwise NOT | |

R | | Increment | |

R | | Decrement | |

R | | Cast | |

R | | Inhibit errors | |

16 | L | | Multiplication |

L | | Division | |

L | | Modulus | |

15 | L | | Addition |

L | | Subtraction | |

L | | String concatenation | |

14 | L | | Bitwise shift left |

L | | Bitwise shift right | |

13 | N | | Less than, less than or equal |

N | | Greater than, greater than or equal | |

12 | N | | Value equality |

N | | Inequality | |

N | | Type and value equality | |

N | | Type and value inequality | |

11 | L | |

Get *Programming PHP, 2nd Edition* now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.