SymfonyWorld Online 2022 Winter Edition

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:


echo (3)."\n";           // prints 2
echo (% -3)."\n";          // prints 2
echo (-3)."\n";          // prints -2
echo (-% -3)."\n";         // prints -2


See Also

add a note

User Contributed Notes 2 notes

1 month 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:
% 4.5

You will enjoy a :
Deprecated: Implicit conversion from float 12.5 to int loses precision in ... filename
Deprecated: Implicit conversion from float 5.4 to int loses precision in ... filename

A fix, cast your int :

(int) 12.5 % (int)4.5
r dot shipelov at tradesoft dot ru
10 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
To Top