PHP 引入了一个新函数 intdiv(),该函数对其操作数执行整数除法,并将除法返回为 int。
intdiv() 函数返回两个整数参数的整数商。如果 “a/b” 的结果是 “c” 作为除法,“r” 作为余数,使得 -
a=b*c+r
在这种情况下,intdiv(a,b) 返回 r −
intdiv ( int $x , int $y ) : int
$x 和 $y 是除法表达式的分子和分母部分。intdiv() 函数返回一个整数。如果两个参数均为正或两个参数均为负,则返回值为正。
示例 1
如果 numerator <分母,则 intdiv() 函数返回 “0”,如下所示 -
<?php
$x=10;
$y=3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$r=intdiv($y, $x);
echo "intdiv(" . $y . "," . $x . ") = " . $r;
?>
它将产生以下输出 -
intdiv(10,3) = 3
intdiv(3,10) = 0
intdiv(3,10) = 0
示例 2
在下面的示例中,intdiv() 函数返回负整数,因为分子或分母为负数。
<?php
$x=10;
$y=-3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$x=-10;
$y=3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>
它将产生以下输出 -
intdiv(10,-3) = -3
intdiv(-10,3) = -3
intdiv(-10,3) = -3
示例 3
intdiv() 函数在分子和分母均为正数或均为负数的情况下返回正整数。
<?php
$x=10;
$y=3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$x=-10;
$y=-3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r ;
?>
它将产生以下输出 -
intdiv(10,3) = 3
intdiv(-10,-3) = 3
intdiv(-10,-3) = 3
示例 4
在以下示例中,分母为 “0”。这会导致 DivisionByZeroError 异常。
<?php
$x=10;
$y=0;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>
它将产生以下输出 -
PHP Fatal error: Uncaught DivisionByZeroError: Division by zero in hello.php:4