gmp_intval() 함수는 GMP 숫자를 일반적인 PHP 정수(integer) 값으로 변환하여 반환합니다. GMP 확장 모듈로 처리한 임의 정밀도 숫자를 일반 산술 연산이나 배열 인덱스 등에 활용해야 할 때 유용하게 사용됩니다.
문법
gmp_intval ( GMP $num ) : int
매개변수
num − 정수 값으로 변환할 GMP 숫자입니다. GMP 객체뿐만 아니라 숫자 형태의 문자열도 전달할 수 있습니다.
반환값
gmp_intval() 함수는 인자로 전달된 GMP 숫자에 해당하는 정수 값을 반환합니다.
예제
다음은 gmp_intval() 함수를 사용하는 기본 예제입니다.
<?php
$num = gmp_init("2147483647");
echo gmp_intval($num);
?>
출력 결과
2147483647
큰 숫자 변환 시 주의사항
GMP 숫자가 PHP에서 표현할 수 있는 최대 정수(PHP_INT_MAX)보다 클 경우, gmp_intval()은 정확한 값을 보장하지 못하고 부정확한 결과를 반환할 수 있습니다. 이러한 경우에는 gmp_strval() 함수를 사용해 문자열 형태로 다루는 것이 안전합니다.
<?php
$bigNum = gmp_init("12345678901234567890123");
// 정수 표현 범위를 초과하므로 부정확한 값이 출력될 수 있음
echo gmp_intval($bigNum);
// 문자열로 변환하면 정확한 값 유지
echo gmp_strval($bigNum);
?>
intval() 함수와의 차이점
PHP 기본 내장 함수인 intval()은 문자열 등의 변수를 지정한 진법(base)에 따라 정수로 변환하는 반면, gmp_intval()은 GMP 객체로 표현된 임의 정밀도 숫자를 정수로 변환한다는 점에서 목적과 용도가 다릅니다. GMP 확장으로 생성한 숫자를 다룰 때는 gmp_intval()을 사용하는 것이 올바른 방법입니다.