PHP đã giới thiệu một hàm mới là intdiv(), hàm này thực hiện phép chia nguyên của các toán hạng của nó và trả về kết quả chia dưới dạng số nguyên.
Hàm intdiv() trả về thương nguyên của hai tham số kiểu nguyên. Nếu "a/b" cho kết quả là "c" dưới dạng phép chia và "r" là số dư sao cho −
a=b*c+r
Trong trường hợp này, intdiv(a,b) trả về r −
intdiv ( int $x , int $y ) : int
Biến $x và $y là phần tử tử số và mẫu số của biểu thức chia. Hàm intdiv() trả về một số nguyên. Giá trị trả về là dương nếu cả hai tham số đều dương hoặc cả hai tham số đều âm.
Nếu tử số nhỏ hơn mẫu số, hàm intdiv() sẽ trả về "0", như được trình bày dưới đây −
<?php $x=10; $y=3; $r=intdiv($x, $y); echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n"; $r=intdiv($y, $x); echo "intdiv(" . $y . "," . $x . ") = " . $r; ?>
Nó sẽ tạo ra output −
intdiv(10,3) = 3 intdiv(3,10) = 0
Trong ví dụ sau, hàm intdiv() trả về số nguyên âm vì tử số hoặc mẫu số là số âm.
<?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"; ?>
Nó sẽ tạo ra output −
intdiv(10,-3) = -3 intdiv(-10,3) = -3
Hàm intdiv() trả về một số nguyên dương trong trường hợp tử số và mẫu số đều là số dương hoặc đều là số âm.
<?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ó sẽ tạo ra output −
intdiv(10,3) = 3 intdiv(-10,-3) = 3
Trong ví dụ sau, mẫu số là "0". Điều này dẫn đến ngoại lệ DivisionByZeroError .
<?php $x=10; $y=0; $r=intdiv($x, $y); echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n"; ?>
Nó sẽ tạo ra output −
PHP Fatal error: Uncaught DivisionByZeroError: Division by zero in hello.php:4