## Arithmetic Operators

Remember basic arithmetic from school? These work just like those.

Arithmetic Operators
Example Name Result
+\$a Identity Conversion of \$a to int or float as appropriate.
-\$a Negation Opposite of \$a.
\$a + \$b Addition Sum of \$a and \$b.
\$a - \$b Subtraction Difference of \$a and \$b.
\$a * \$b Multiplication Product of \$a and \$b.
\$a / \$b Division Quotient of \$a and \$b.
\$a % \$b Modulo Remainder of \$a divided by \$b.
\$a ** \$b Exponentiation Result of raising \$a to the \$b'th power.

The division operator ("/") returns a float value unless the two operands are integers (or strings that get converted to integers) and the numbers are evenly divisible, in which case an integer value will be returned. For integer division, see intdiv().

Operands of modulo are converted to int before processing. For floating-point modulo, see fmod().

The result of the modulo operator `%` has the same sign as the dividend — that is, the result of `\$a % \$b` will have the same sign as \$a. For example:

``` <?phpecho (5 % 3)."\n";           // prints 2echo (5 % -3)."\n";          // prints 2echo (-5 % 3)."\n";          // prints -2echo (-5 % -3)."\n";         // prints -2?> ``` add a note

### User Contributed Notes 2 notes

-1
Zeomni
7 days ago
``` With PHP 8.1 and more, be carefull to the modulo "%"Both argument must be some integer or a float without floating part.Bad Example:<?php12.5 % 4.5?>You will enjoy a :Deprecated: Implicit conversion from float 12.5 to int loses precision in ... filenameDeprecated: Implicit conversion from float 5.4 to int loses precision in ... filenameA fix, cast your int : <?php(int) 12.5 % (int)4.5 ```
-62
r dot shipelov at tradesoft dot ru
9 months ago
``` Regarding the operation of division with remainder (%) - it differs from the one accepted in mathematics, since it is looking for "refusal" and not "remainder" - a feature of the idiv implementation in 8086 ``` 