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

PHP 정수(Integer) 데이터 타입 완벽 가이드 – 진법 표현부터 범위 초과 처리까지

정의 및 사용법

PHP에서 정수(Integer)는 소수점 이하 부분 없이 정수만을 나타내는 스칼라 데이터 타입입니다. PHP는 적절한 접두사를 붙여 하나의 정수를 10진법, 16진법, 8진법 또는 2진법으로 표현할 수 있습니다.

기본적으로 정수는 10진법 표기로 해석됩니다. 16진법, 8진법, 2진법으로 표현하려면 각각 0x, 0, 0b 기호를 접두사로 붙여야 합니다.

문법

<?php
// 변수에 정수 값 리터럴 할당
$var=232; // 10진수
$var1=045; // 8진수
$var2=0xB2; // 16진수
$var3=0b1001; // 2진수
?>

가독성을 높이기 위해 정수 리터럴에 밑줄(_)을 구분 기호로 사용할 수 있으며, PHP는 처리 과정에서 이 기호를 무시합니다.

<?php
$var=55_467; // 55467로 처리됨
?>

PHP 버전 지원

밑줄(_) 구분 기호는 PHP 7.4부터 사용할 수 있습니다.

다음 예제는 다양한 진법 표기법으로 정수 리터럴을 작성하는 방법을 보여줍니다.

예제

<?php
$var=10;
echo "decimal : " .$var . "\n";
// 8진수
$var1=010;
echo "Octal: " . $var1 ."\n";
// 16진수
$var2=0x10;
echo "hexadecimal : " . $var2 . "\n";
// 2진수
$var3=0b10;
echo "binary : " .$var3;
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −

decimal : 10
Octal: 8
hexadecimal : 16
binary : 2

다음 예제는 밑줄 구분 기호를 활용하는 방법을 보여줍니다.

예제

<?php
$var=1_45_690;
echo $var . "\n";
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −

145690

정수 값이 허용 범위를 초과하면 자동으로 부동 소수점(float)으로 변환됩니다.

예제

<?php
$var=PHP_INT_MAX+1;
var_dump($var);
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −

float(9.2233720368548E+18)

참고 사항

정수의 크기는 실행 환경(플랫폼)에 따라 달라집니다. 일반적인 64비트 시스템에서 정수의 최대값은 약 92경(9.22×10¹⁸)이며, 이 값은 상수 PHP_INT_MAX로 확인할 수 있습니다. 반면 32비트 시스템에서는 최대값이 약 21억(2,147,483,647)이므로, 대규모 숫자를 다룰 때는 실행 환경을 반드시 고려해야 합니다.