我给出了非常简单的数组:
$plugin_temp_arr = array(
'some_app_id' => 333475464566411
);
但是当我得到print_r($ plugin_temp_arr)时
Array ( [some_app_id] => 3.3347546456641E+14 )
为什么会发生这种情况,如何避免这种情况? 是的 - 如果那是一个字符串 - 得到正确的价值,但我想知道 - 为什么这个号码已被转换为另一种格式?
答案 0 :(得分:1)
在PHP中,如果你存储一个数字beyound整数的边界(它的平台依赖,例如32-bit
,64-bit
),这个数字将被解释为浮点数。
您可以使用PHP_INT_MAX
常量来查看平台上整数的大小。
echo "PHP_INT_MAX: " . PHP_INT_MAX . PHP_EOL;
答案 1 :(得分:1)
整数的大小取决于平台,尽管最大值约为20亿是通常的值(32位有符号)。 64位平台的最大值通常约为9E18,Windows除外,它总是32位。 PHP不支持无符号整数。整数大小可以使用常量PHP_INT_SIZE来确定,最大值可以使用自PHP 4.4.0和PHP 5.0.5以来的常量PHP_INT_MAX来确定。
PHP的32位版本:
整数可以是-2147483648到2147483647
PHP的64位版本:
整数可以是-9223372036854775808到9223372036854775807
这些范围之外的值由浮点值表示。