In this tutorial we will learn about the different types of operators used in PHP.

- Arithmetic Operators
- Assignment Operators
- Bitwise Operators
- Comparison Operators
- Logical Operators
- Increment/Decrement Operators

These operators are addition, subtraction, multiplication, division and modulus.

Operator | Example |
---|---|

+ (addition) | 1 + 2 = 3 |

- (subtraction) | 2 - 1 = 1 |

* (multiplication) | 4 * 5 = 20 |

/ (division) | 4 / 2 = 2 |

% (modulus) | 5 % 2 = 1 (we get the remainder) |

To assign value to any variable we use the assignment operator.

```
$name = "Yusuf Shakeel"; //we have assigned a string value to a variable.
```

We can also combine assignment operator with other operators like +, - etc. to shorten certain expression.

In the following expression we are assigning 10 to variable x and 20 to variable y. We are then adding x and y and saving the final result in variable x.

```
$x = 10;
$y = 20;
$x = $x + $y;
```

The above addition expression can be simplified in the following manner.

```
$x = 10;
$y = 20;
$x += $y; //this means $x = $x + $y
```

Following are combined assignment operators.

Combined Assignment Operator | Expanded form |
---|---|

$x += $y | $x = $x + $y |

$x -= $y | $x = $x - $y |

$x *= $y | $x = $x * $y |

$x /= $y | $x = $x / $y |

$x %= $y | $x = $x % $y |

Bitwise operators are used to work with individual bits of integer values. Following are the list of bitwise operators.

Operator | Explanation | Example |
---|---|---|

& (and) | If both the bits are 1 then output is 1 | 1010 & 1100 = 1000 |

| (or) | If any one of the bits is 1 then output is 1 | 1010 | 1100 = 1110 |

~ (not) | Changes 1 to 0 and 0 to 1 | ~1011 = 0100 |

^ (xor) | If only one of the bit is set to 1 and not both then output is 1 | 1010 ^ 1100 = 0110 |

<< (left shift) | Shift the bits by N position to the left | 000011 << 2 = 001100 |

>> (right shift) | Shift the bits by N position to the right | 001100 >> 2 = 000011 |

Comparison operators are used to compare the two operands and the result is in boolean form i.e, either true or false.

Operator | Explanation | Example |
---|---|---|

== (equal) | If both sides are equal then return true | $x == $y true if $x is equal to $y |

=== (identical) | If both sides are equal and of the same type then return true | $x === $y true if $x is equal to $y and both are of same type |

!= (not equal) | If one is not equal to the other then return true | $x != $y true if $x is not equal to $y |

!== (not identical) | If one is not equal to the other and also not of the same type then return true | $x !== $y true if $x is not equal to $y and they are also not of the same type |

< (less than) | If left side is less than the right side then return true | $x < $y true if $x is less than $y |

> (greater than) | If left side is greater than the right side then return true | $x > $y true if $x is greater than $y |

<= (less than or equal to) | If left side is less than or equal to the right side then return true | $x <= $y true if $x is less than or equal to $y |

>= (greater than or equal to) | If left side is greater than or equal to the right side then return true | $x >= $y true if $x is less than or equal to $y |

Logical operators are used to work with Boolean values i.e., true or false. Let us first see the boolean values assigned by PHP to some expressions.

Following have boolean value `false`

.

- Literal Value false
- Empty string " "
- Zero string "0"
- Integer value 0
- Floating value 0.0
- Array with zero elements
- Null value

All other values evaluate to `true`

.

Operator | Example | Explanation |
---|---|---|

&& | $x && $y | true if both $x and $y evaluate to true, otherwise result is false |

|| | $x || $y | true if either $x or $y evaluate to true, otherwise result is false |

! | !$x | true if $x evaluate to false and vice versa |

and | $x and $y | true if both $x and $y evaluate to true, otherwise result is false |

or | $x or $y | true if either $x or $y evaluate to true, otherwise result is false |

xor | $x xor $y | true if $x or $y and not both evaluate to true, otherwise result is false |

Increment operator is used to increase value of a variable by 1. And decrement operator is used to decrease the value by 1.

++ is the Increment Operator and -- is the Decrement Operator.

```
$x = 10; //x set to 10
echo $x; //output 10
//now increase the value of x by 1
$x = $x + 1;
echo $x //output 11
```

Now using the increment operator.

```
$x = 10; //x set to 10
echo $x; //output 10
//now increase the value of x by 1
$x++;
echo $x //output 11
```

Decrement operation

```
$x = 10; //x set to 10
echo $x; //output 10
//now decrease the value of x by 1
$x = $x - 1;
echo $x //output 9
```

Now using the decrement operator.

```
$x = 10; //x set to 10
echo $x; //output 10
//now decrease the value of x by 1
$x--;
echo $x //output 9
```

Important points to note when using the increment and decrement operators in expression.

```
++$x; // adds one to $x and then returns the result
$x++; // returns value of $x and then adds one to $x
–-$x; // subtracts one from $x and then returns the result
$x–-; // returns value of $x and then subtracts one from $x
```

Lets check some examples.

Pre-increment (++ before the variable)

```
//set x to 10
$x = 10;
echo $x; //output 10
//now assign value of x to y using pre-increment
//this is first increment x by 1 and then assign the new value to y
$y = ++$x;
echo $y; //output 11
echo $x; //output 11
```

Post-increment (++ after the variable)

```
//set x to 10
$x = 10;
echo $x; //output 10
//now assign value of x to y using post-increment
//first use value of x then increment by 1
$y = $x++;
echo $y; //output 10
echo $x; //output 11
```

Pre-decrement (-- before the variable)

```
//set x to 10
$x = 10;
echo $x; //output 10
//now assign value of x to y using pre-decrement
//this will first decrease value of x by 1 then assign to y
$y = --$x;
echo $y; //output 9
echo $x; //output 9
```

Post-decrement (-- after the variable)

```
//set x to 10
$x = 10;
echo $x; //output 10
//now assign value of x to y using post-decrement
//this will first use the value of x then decrease by 1
$y = $x--;
echo $y; //output 10
echo $x; //output 9
```

Recently Updated