답변:
보내는 사람 PHP 매뉴얼 :
정수의 크기는 플랫폼에 따라 다르지만 약 20 억의 최대 값이 일반적인 값 (부호 32 비트)입니다. PHP는 부호없는 정수를 지원하지 않습니다. 정수 크기는 PHP_INT_SIZE 상수를 사용하여 결정할 수 있으며, 최대 값은 PHP 4.4.0 및 PHP 5.0.5부터 상수 PHP_INT_MAX를 사용하여 결정할 수 있습니다.
64 비트 플랫폼의 최대 값은 일반적으로 약 9E18입니다. 단, PHP 7 이전의 Windows에서는 항상 32 비트였습니다.
32 비트 PHP 빌드 :
64 비트 PHP 빌드 :
숫자는 포함됩니다.
참고 : 일부 64 비트 빌드는 한때 32 비트 정수를 사용했습니다. 특히 이전 Windows 빌드의 PHP
이 범위를 벗어난 값은이 범위 내의 정수가 아닌 값과 마찬가지로 부동 소수점 값으로 표시됩니다. 인터프리터는 계산 결과 값을 정수로 나타낼 수 없는지 여부에 따라이 부동 소수점으로의 전환이 필요한시기를 자동으로 결정합니다.
PHP는 "부호없는"정수를 지원하지 않으므로 모든 정수의 최대 값을 "부호있는"정수 범위로 제한합니다.
PHP int의 크기는 플랫폼에 따라 다릅니다 .
정수의 크기는 플랫폼에 따라 다르지만 약 20 억의 최대 값이 일반적인 값 (부호 32 비트)입니다. PHP는 부호없는 정수를 지원하지 않습니다. 정수 크기는 PHP_INT_SIZE 상수를 사용하여 결정할 수 있으며, 최대 값은 PHP 4.4.0 및 PHP 5.0.5부터 상수 PHP_INT_MAX를 사용하여 결정할 수 있습니다.
PHP 6은 "longs"(64 비트 정수)를 추가합니다.
(조금 늦었지만 유용 할 수 있음)
PHP_INT_MAX 및 PHP_INT_SIZE 만 신뢰 하십시오 .이 값은 아치 (32/64 비트) 및 OS에 따라 다릅니다.
다른 "추측"또는 "힌트"는 거짓 일 수 있습니다.
아, 나는 그것을 발견 : 2 (32) - 1 (2,147,483,647)
정수 오버플로
PHP가 정수 유형의 경계를 벗어난 숫자를 발견하면 대신 float로 해석됩니다. 또한 정수 유형의 경계를 초과하는 숫자가 생성되는 연산은 대신 부동 소수점을 반환합니다.
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
OS에 따라 다르지만 매뉴얼 에 따르면 2147483647이 일반적인 값 입니다.