Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP의 gmp_intval() 함수 – GMP 숫자를 정수로 변환하는 방법

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()을 사용하는 것이 올바른 방법입니다.