php - 在使用is_int函数时,当需要判定的数字超过了9位则返回了false,是为什么?
大家讲道理
大家讲道理 2017-05-16 13:04:03
0
2
967

php 在使用is_int函数时,当需要判定的数字超过了9位则返回了false,是为什么?

大家讲道理
大家讲道理

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

membalas semua(2)
滿天的星座

. . . .
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
世界只因有你

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!