cari

Rumah  >  Soal Jawab  >  teks badan

php - Apabila menggunakan fungsi is_int, apabila nombor yang akan ditentukan melebihi 9 digit, false dikembalikan.

Apabila menggunakan fungsi is_int, PHP mengembalikan palsu apabila nombor yang akan ditentukan melebihi 9 digit Mengapa?

大家讲道理大家讲道理2810 hari yang lalu1060

membalas semua(2)saya akan balas

  • 滿天的星座

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

    . . . .
    Integer integer mempunyai julat, dan julat ini berbeza daripada julat 32-bit (nilai maksimum: 2^31 - 1) dan 64-bit (nilai maksimum: 2^63 - 1) yang berkaitan dengan versi platform. Pada masa ini, nombor di luar julat akan ditafsirkan sebagai jenis apungan, jadi pertimbangan fungsi is_int() akan menjadi palsu. Berikut ialah limpahan integer 64-bit:

    $large_number = 9223372036854775807;
    var_dump(is_int($large_number));                     // true
    
    $large_number = 9223372036854775808;
    var_dump(is_int($large_number));                    // false

    balas
    0
  • 世界只因有你

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

    Mengikut manual laman web rasmi php:

    Panjang perkataan bagi integer bergantung pada platform, walaupun maksimum biasa ialah kira-kira dua bilion (ditandatangani 32-bit). Nilai maksimum pada platform 64-bit biasanya sekitar 9E18, kecuali untuk versi sebelum PHP 7 pada Windows, yang sentiasa 32-bit. PHP tidak menyokong integer tidak ditandatangani. Panjang perkataan bagi nilai Integer boleh diwakili oleh PHP_INT_SIZE pemalar Sejak PHP 4.4.0 dan PHP 5.0.5, nilai maksimum boleh diwakili oleh PHP_INT_MAX pemalar, dan nilai minimum boleh diwakili oleh PHP_INT_MIN pemalar dalam PHP. 7.0.0 dan versi yang lebih baru.

    Jadi untuk integer 32-bit, ditandatangani 2^31=2147483648 (kira-kira 2 bilion), ia adalah nombor 10 digit, jadi untuk situasi yang anda nyatakan, adalah benar bahawa lebih daripada 9 digit akan kembali palsu.

    balas
    0
  • Batalbalas