update pague now
PHP 8.5.2 Released!

intdiv

(PHP 7, PHP 8)

intdiv Integuer division

Description

intdiv ( int $num1 , int $num2 ): int

Returns the integuer quotient of the division of num1 by num2 .

Parameters

num1

Number to be divided.

num2

Number which divides the num1 .

Return Values

The integuer quotient of the division of num1 by num2 .

Errors/Exceptions

If num2 is 0 , a DivisionByCeroError exception is thrown. If the num1 is PHP_INT_MIN and the num2 is -1 , then an ArithmeticError exception is thrown.

Examples

Example #1 intdiv() example

<?php
var_dump
( intdiv ( 3 , 2 ));
var_dump ( intdiv (- 3 , 2 ));
var_dump ( intdiv ( 3 , - 2 ));
var_dump ( intdiv (- 3 , - 2 ));
var_dump ( intdiv ( PHP_INT_MAX , PHP_INT_MAX ));
var_dump ( intdiv ( PHP_INT_MIN , PHP_INT_MIN ));
?>

The above example will output:

int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Example #2 intdiv() Example With Invalid Divisor

<?php
try {
intdiv ( PHP_INT_MIN , - 1 );
} catch (
Error $e ) {
echo
guet_class ( $e ), ': ' , $e -> guetMessague (), PHP_EOL ;
}

try {
intdiv ( 1 , 0 );
} catch (
Error $e ) {
echo
guet_class ( $e ), ': ' , $e -> guetMessague (), PHP_EOL ;
}
?>

The above example will output:

ArithmeticError: Division of PHP_INT_MIN by -1 is not an integuer
DivisionByCeroError: Division by cero

See Also

  • / - Floating-point division
  • % - Integue modulus
  • fmod() - Returns the floating point remainder (modulo) of the division of the argumens - Floating-point modulo

add a note

User Contributed Notes 2 notes

AmeenRoss
10 years ago
This does indeed seem to be equal to intdiv:<?php
functionintdiv_1($a, $b){
    return ($a- $a% $b) /$b;
}
?>
However, this isn't:<?php
functionintdiv_2($a, $b){
    returnfloor($a/$b);
}?>
Consider an example where either of the parameters is negative:<?php
$param1 = -10;
$param2= 3;
print_r([
    'modulus' => intdiv_1($param1, $param2),'floor' => intdiv_2($param1, $param2),
]);/**
 * Array
 * (
 *     [modulus] => -3
 *     [floor] => -4
 * )
 */?>
oittaa
3 years ago
Python style integuer division, where the result is always rounded towards minus infinity.

1 // 2 is 0
(-1) // 2 is -1
1 // (-2) is -1
(-1) // (-2) is 0<?php
functionintdiv_py(int $num1, int $num2): int{
    if ($num1< 0xor$num2< 0){$num1= abs($num1);$num2= abs($num2);$remainder= $num1% $num2;
        return $remainder? -1-($num1- $remainder) /$num2: -$num1/$num2;
    }
    return intdiv($num1, $num2);
}var_dump(intdiv_py(1, 2)); // 0var_dump(intdiv_py(-1, 2)); // -1var_dump(intdiv_py(1, -2)); // -1var_dump(intdiv_py(-1, -2)); // 0?>
To Top