3

GBに換算すると2GBくらい。

しかし、私は現在 32 ビット Windows で実行しており、それよりも大きなファイルを問題なく使用できます。

では、なぜ PHP はこの数を 2147483647 に制限したのでしょうか? Windows がより大きな数を扱うことができるなら、PHP もそれを行うべきではないでしょうか?

4

3 に答える 3

9

2147483647 は、32 ビットで格納できる最大の符号付き数値です。PHP はこの方法で数値を格納します。これは、数値がコンピューターに格納される方法だからです。それ以上になると、数学とすべてがより複雑になります。Windows も 32 ビットの数値を使用します。2 GB を超えるファイルでどのように機能するかはわかりませんが、そのような場合は、より複雑なコードを使用して何らかの方法で機能すると思います。

于 2012-12-19T22:17:04.543 に答える
5

2,147,483,647 は、32 ビットに格納できる最大数です。プロセッサには、ビットで満たすスロットが 32 個しかありません。これよりも大きい数は、より複雑になり、計算により多くのオーバーヘッドが必要になります。逆に、最小の数値は -2,147,483,648 です。これは、これより小さな数値を 32 ビットに格納することはできないためです。

32 ビット システムでより大きな数の計算を行いたい場合は、この制限を回避する必要があります。確かに回避策はありますが、一般的な Web アプリケーションでは必要になる可能性はほとんどありません。

于 2012-12-19T22:24:15.067 に答える
4

2,147,483,647 は 2 31 -1 で、符号付き 4 バイト値の最大値です。2 63 -1 = 9,223,372,036,854,775,807の long を使用することもできます。

于 2012-12-19T22:13:13.120 に答える