Remember basic arithmetic from school? These work just like those.
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 int (or
numeric strings
which are type juggled to int ) and the numerator is a multiple
of the divisor, 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:
Example #1 The Modulo Operator
<?php
var_dump(5 % 3);
var_dump(5 % -3);
var_dump(-5 % 3);
var_dump(-5 % -3);
?>
The above example will output:
int(2) int(2) int(-2) int(-2)
The modulo % does not work on Floats, use fmod()
https://www.php.net/manual/en/function.fmod.php
php > echo (1.1 % 1);
0
php > echo fmod(1.1, 1);
0.1
Could be a discussion on if it should, but at least at the moment it doesn't.
https://en.wikipedia.org/wiki/Modulo
has a list of languages that do/don't support modulo on floats