정의 및 사용법
intdiv() 함수는 두 정수 매개변수를 나눈 정수 몫(integer quotient)을 반환합니다. 만약 x/y를 나누었을 때 몫이 i이고 나머지가 r이라면 다음 관계가 성립합니다.
x = y × i + r
이때 intdiv(x, y)는 i, 즉 나머지를 제외한 정수 몫만을 반환합니다.
구문
intdiv ( int $x , int $y ) : int
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | x 나눗셈 표현식에서 분자(피제수)에 해당하는 값입니다. |
| 2 | y 나눗셈 표현식에서 분모(제수)에 해당하는 값입니다. |
반환 값
PHP intdiv() 함수는 x를 y로 나눈 정수 몫을 반환합니다. 두 매개변수가 모두 양수이거나 모두 음수인 경우 반환 값은 양수가 되며, 부호가 서로 다른 경우에는 음수가 됩니다.
PHP 버전
이 함수는 PHP 7부터 도입되었으며, PHP 7.x 이상 버전에서 사용할 수 있습니다.
예제 1: 분자가 분모보다 작은 경우
다음 예제는 분자가 분모보다 작으면 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
예제 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";
$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
intdiv(-10,-3) = 3
예제 3: 분모가 0인 경우
다음 예제에서는 분모가 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
예제 4: 소수점 이하가 무시되는 경우
다음 예제에서는 매개변수의 소수점 이하 부분이 무시되고, intdiv() 함수가 정수 부분에만 적용되는 것을 보여줍니다.
<?php
$x = 2.90;
$y = 1.90;
$r = intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>
출력
소수 부분이 버려진 후 계산되므로 다음과 같은 결과가 출력됩니다.
intdiv(2.9,1.9) = 2