135

非常に大きな数を扱うことができる特別なライブラリを無視すると、PHP に格納できる最大の int 値はいくつになるでしょうか?

4

8 に答える 8

143

PHPマニュアルから:

整数のサイズはプラットフォームに依存しますが、最大値は約 20 億が通常の値です (符号付き 32 ビット)。PHP は符号なし整数をサポートしていません。PHP 4.4.0 および PHP 5.0.5 以降では、整数サイズは定数 PHP_INT_SIZE を使用して決定でき、最大値は定数 PHP_INT_MAX を使用して決定できます。

通常、64 ビット プラットフォームの最大値は約 9E18 ですが、PHP 7 より前の Windows では常に 32 ビットでした。

于 2009-03-22T07:36:51.767 に答える
97

PHP の 32 ビット ビルド:

  • 整数は-2,147,483,6482,147,483,647 (~ ± 20 億)

PHP の 64 ビット ビルド:

  • 整数は-9,223,372,036,854,775,8089,223,372,036,854,775,807 (~ ± 9 京)

数値は包括的です。

注: 一部の 64 ビット ビルドでは、かつて 32 ビット整数が使用されていました。特に古い Windows ビルドの PHP では特にそうです。

これらの範囲外の値は、これらの範囲内の非整数値と同様に浮動小数点値で表されます。インタープリターは、計算の結果の値が整数として表現できないかどうかに基づいて、この浮動小数点への切り替えがいつ発生する必要があるかを自動的に決定します。

PHP は「符号なし」整数自体をサポートしていないため、すべての整数の最大値を「符号付き」整数の範囲に制限しています。

于 2010-05-16T04:01:56.893 に答える
24

PHP int のサイズはプラットフォームに依存します:

整数のサイズはプラットフォームに依存しますが、最大値は約 20 億が通常の値です (符号付き 32 ビット)。PHP は符号なし整数をサポートしていません。PHP 4.4.0 および PHP 5.0.5 以降では、整数サイズは定数 PHP_INT_SIZE を使用して決定でき、最大値は定数 PHP_INT_MAX を使用して決定できます。

PHP 6 は「long」(64 ビット整数) を追加します。

于 2009-03-22T07:36:21.080 に答える
17

(少し遅いですが、役に立つかもしれません)

PHP_INT_MAX と PHP_INT_SIZEのみを信頼してください。この値はアーキテクチャ (32/64 ビット) と OS によって異なります...

他の「推測」または「ヒント」は誤りである可能性があります。

于 2010-12-28T17:11:19.913 に答える
6

あ、見つけた: 2 32 - 1 (2147483647)

http://au2.php.net/int

整数オーバーフロー

PHP が整数型の境界を超える数値を検出すると、代わりに float として解釈されます。また、整数型の境界を超える数値になる操作は、代わりに float を返します。

<?php
$large_number =  2147483647;
var_dump($large_number);
// output: int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)
于 2009-03-22T07:36:16.807 に答える
2

OSにもよりますが、マニュアルによると2147483647が通常の値です。

于 2009-03-22T07:36:50.317 に答える