検索

ホームページ  >  に質問  >  本文

php - is_int関数を使用すると、求める数値が9桁を超えるとfalseが返されるのはなぜですか?

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

大家讲道理大家讲道理2751日前1020

全員に返信(2)返信します

  • 滿天的星座

    滿天的星座2017-05-16 13:06:03

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

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:06:03

    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
  • キャンセル返事