php - is_int関数を使用すると、求める数値が9桁を超えるとfalseが返されるのはなぜですか?
大家讲道理
大家讲道理 2017-05-16 13:04:03
0
2
1039

is_int 関数を使用すると、決定する数値が 9 桁を超えると PHP が false を返します。なぜですか?

大家讲道理
大家讲道理

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

全員に返信(2)
滿天的星座

。 。 。 。
Integer 整数型には範囲があり、この範囲はプラットフォームのバージョンに関係する 32 ビット (最大値: 2^31 - 1) や 64 ビット (最大値: 2^63 - 1) の範囲とは異なります。このとき、範囲外の数値はfloat型として解釈されるため、is_int()関数の判定はfalseとなります。 以下は64ビット整数のオーバーフローです。 リーリー

いいねを押す +0
世界只因有你

PHP公式Webサイトのマニュアルによると:

整数の語長はプラットフォームに依存しますが、通常の最大値は約 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 以降のバージョン。

つまり、符号付き 2^31=2147483648 の 32 ビット整数 (約 20 億) の場合、それは 10 桁の数値であるため、前述の状況では、9 桁を超えると false が返されるのは事実です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート