php – 整数类型转换问题

前端之家收集整理的这篇文章主要介绍了php – 整数类型转换问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
情况#1:我有以下代码输出正确的数字
<?PHP 
   $integer = 10000000000;
   $array = array($integer);
   print_r($array[0]); //output = 1000000000
?>

情况#2:但是当我明确地将相同的数字类型转换为整数时,它会给出不同的输出

<?PHP
    $integer = (int)10000000000;
    $array = array($integer);
    print_r($array[0]); //output = 1410065408
?>

情况#3:如果我将数字减去一个0并输入它,那么它返回正确的数字

<?PHP
   $integer = (int)1000000000;
   $array = array($integer);
   print_r($array[0]); //output = 1000000000
?>

为什么它没有在CASE#2中产生正确的输出

您最有可能超过平台上int的最大值.

Official PHP Doc

The size of an integer is platform-dependent,although a maximum value
of about two billion is the usual value (that’s 32 bits signed). Integer size can be
determined using the constant PHP_INT_SIZE,and maximum value using
the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.

对于32位平台:

整数可以从-2147483648到2147483647

对于64位平台:

整数可以是-9223372036854775808至9223372036854775807

猜你在找的PHP相关文章