回答:
PHPマニュアルから:
整数のサイズはプラットフォームに依存しますが、最大値である約20億が通常の値です(32ビットの符号付き)。PHPは符号なし整数をサポートしていません。PHP 4.4.0およびPHP 5.0.5以降、整数のサイズは定数PHP_INT_SIZEを使用して、最大値は定数PHP_INT_MAXを使用して決定できます。
64ビットプラットフォームの最大値は通常9E18ですが、PHP 7より前のWindowsでは常に32ビットでした。
PHPの32ビットビルド:
PHPの64ビットビルド:
数値は包括的です。
注:一部の64ビットビルド、かつて32ビット整数を使用していたもの、特にPHPの古いWindowsビルド
これらの範囲外の値は、これらの範囲内の非整数値と同様に、浮動小数点値で表されます。インタープリターは、計算の結果値を整数として表すことができないかどうかに基づいて、浮動小数点への切り替えをいつ行う必要があるかを自動的に判断します。
PHPは「符号なし」整数自体をサポートしていないため、すべての整数の最大値を「符号付き」整数の範囲に制限します。
PHP intのサイズはプラットフォームに依存します:
整数のサイズはプラットフォームに依存しますが、最大値である約20億が通常の値です(32ビットの符号付き)。PHPは符号なし整数をサポートしていません。PHP 4.4.0およびPHP 5.0.5以降、整数のサイズは定数PHP_INT_SIZEを使用して、最大値は定数PHP_INT_MAXを使用して決定できます。
PHP 6は "longs"(64ビット整数)を追加します。
(少し遅れますが、役に立つかもしれません)
PHP_INT_MAXとPHP_INT_SIZEのみを信頼してください。この値は、アーチ(32/64ビット)とOSによって異なります...
その他の「推測」または「ヒント」はすべて偽である可能性があります。
ああ見つけた:2 32-1(2147483647)
整数オーバーフロー
PHPが整数型の範囲を超える数値を検出した場合、その数値は代わりに浮動小数点数として解釈されます。また、整数型の境界を超える数になる演算では、代わりに浮動小数点数が返されます。
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
お使いのOSにもよりますが、マニュアルによると2147483647が通常の値です。