php - is_int 함수를 사용할 때 판별할 숫자가 9자리를 초과하면 false가 반환되는 이유는 무엇입니까?
大家讲道理
大家讲道理 2017-05-16 13:04:03
0
2
1033

is_int 함수를 사용할 때 판별할 숫자가 9자리를 초과하면 PHP는 false를 반환합니다. 이유는 무엇입니까?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(2)
滿天的星座

. . . .
정수 정수에는 범위가 있으며, 이 범위는 플랫폼 버전에 따라 32비트(최대값: 2^31 - 1) 및 64비트(최대값: 2^63 - 1)의 범위와 다릅니다. 이때 범위를 벗어난 숫자는 float 유형으로 해석되므로 is_int() 함수 판단은 false가 됩니다. 다음은 64비트 정수 오버플로입니다.

으아아아
世界只因有你

PHP 공식 웹사이트 매뉴얼에 따르면:

정수의 단어 길이는 플랫폼에 따라 다르지만 일반적인 최대값은 약 20억(32비트 부호 있음)입니다. 64비트 플랫폼의 최대값은 일반적으로 약 9E18입니다. 단, Windows의 PHP 7 이전 버전은 항상 32비트였습니다. PHP는 부호 없는 정수를 지원하지 않습니다. 정수값의 단어 길이는 PHP_INT_SIZE 상수로 표현할 수 있습니다. PHP 4.4.0, PHP 5.0.5부터는 PHP에서 최대값을 PHP_INT_MAX, 최소값을 PHP_INT_MIN 상수로 표현할 수 있습니다. 7.0.0 이상 버전.

그래서 부호 있는 32비트 정수의 경우 2^31=2147483648(약 20억)는 10자리 숫자이므로 말씀하신 상황에서는 9자리 이상이 false를 반환하는 것이 사실입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿