CASE # 1:
我有以下的代码,其输出正确的数字整数类型转换问题
<?php
$integer = 10000000000;
$array = array($integer);
print_r($array[0]); //output = 1000000000
?>
CASE # 2:
但是,当我明确地类型转换相同数量的整数它给不同的输出
<?php
$integer = (int)10000000000;
$array = array($integer);
print_r($array[0]); //output = 1410065408
?>
CASE # 3:
如果我把这个数字减一个0然后输入它,然后返回正确的数字
<?php
$integer = (int)1000000000;
$array = array($integer);
print_r($array[0]); //output = 1000000000
?>
为什么它不会在CASE # 2
中产生正确的输出?
看起来你已经超出了整数类型的限制。一个整数的最大值是2147483647.在这里阅读它:http://php.net/manual/en/language.types.integer.php – SamHuckaby
是的,你已经超过了Integer类型的限制,所以它转换为已知的最大整数。 – MurifoX
需要注意的是,第一种情况“起作用”是因为PHP将它自动转换为一个字符串(或者可以处理该数字的某种类型)。 – SamHuckaby