   #PHP Manual Language Reference Expressions Arithmetic Operators

   PHP Manual
   Prev  Next
   ______________________________________________________________________

Chapter 10. Operators

   Table of Contents
   Operator Precedence
   Arithmetic Operators
   Assignment Operators
   Bitwise Operators
   Comparison Operators
   Error Control Operators
   Execution Operators
   Incrementing/Decrementing Operators
   Logical Operators
   String Operators
   Array Operators

   An operator is something that you feed with one or more values (or
   expressions, in programming jargon) which yields another value (so
   that the construction itself becomes an expression). So you can think
   of functions or constructions that return a value (like print) as
   operators and those that return nothing (like echo) as any other
   thing.

   There are three types of operators. Firstly there is the unary
   operator which operates on only one value, for example ! (the negation
   operator) or ++ (the increment operator). The second group are termed
   binary operators; this group contains most of the operators that PHP
   supports, and a list follows below in the section Operator Precedence.

   The third group is the ternary operator: ?:. It should be used to
   select between two expressions depending on a third one, rather than
   to select two sentences or paths of execution. Surrounding ternary
   expressions with parentheses is a very good idea.

Operator Precedence

   The precedence of an operator specifies how "tightly" it binds two
   expressions together. For example, in the expression 1 + 5 * 3, the
   answer is 16 and not 18 because the multiplication ("*") operator has
   a higher precedence than the addition ("+") operator. Parentheses may
   be used to force precedence, if necessary. For instance: (1 + 5) * 3
   evaluates to 18.

   The following table lists the precedence of operators with the
   lowest-precedence operators listed first.

   Table 10-1. Operator Precedence
   Associativity   Operators
   left            ,
   left            or
   left            xor
   left            and
   right           print
   right           = += -= *= /= .= %= &= |= ^= <<= >>=
   left            ? :
   left            ||
   left            &&
   left            |
   left            ^
   left            &
   non-associative == != === !==
   non-associative < <= > >=
   left            << >>
   left            + - .
   left            * / %
   right           ! ~ ++ -- (int) (float) (string) (array) (object) @
   right           [
   non-associative new

     Note: Although ! has a higher precedence than =, PHP will still
     allow expressions similar to the following: if (!$a = foo()), in
     which case the output from foo() is put into $a.
   ______________________________________________________________________

   Prev        Home                 Next
   Expressions  Up  Arithmetic Operators
