Movatterモバイル変換


[0]ホーム

URL:


PHP 8.5.0 Alpha 2 available for testing
    is_finite »
    « hypot

    intdiv

    (PHP 7, PHP 8)

    intdivInteger division

    Description

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

    Returns the integer quotient of the division ofnum1 bynum2.

    Parameters

    num1

    Number to be divided.

    num2

    Number which divides thenum1.

    Return Values

    The integer quotient of the division ofnum1 bynum2.

    Errors/Exceptions

    Ifnum2 is0, aDivisionByZeroError exception is thrown. If thenum1 isPHP_INT_MIN and thenum2 is-1, then anArithmeticError exception is thrown.

    Examples

    Example #1intdiv() 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 #2intdiv() Example With Invalid Divisor

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

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

    The above example will output:

    ArithmeticError: Division of PHP_INT_MIN by -1 is not an integerDivisionByZeroError: Division by zero

    See Also

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

    Found A Problem?

    Learn How To Improve This PageSubmit a Pull RequestReport a Bug
    add a note

    User Contributed Notes2 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){
    return
    floor($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 integer 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));// 0
    var_dump(intdiv_py(-1,2));// -1
    var_dump(intdiv_py(1, -2));// -1
    var_dump(intdiv_py(-1, -2));// 0
    ?>
    add a note
    To Top
    and to navigate •Enter to select •Esc to close
    PressEnter without selection to search using Google

    [8]ページ先頭

    ©2009-2025 Movatter.jp