php – 整数类型转换问题

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

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

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

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

<?@R_301_461@
   $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 @R_301_461@_INT_SIZE,and maximum value using
the constant @R_301_461@_INT_MAX since @R_301_461@ 4.4.0 and @R_301_461@ 5.0.5.

对于32位平台:

整数可以从-2147483648到2147483647

对于64位平台:

整数可以是-9223372036854775808至9223372036854775807

原文链接:https://www.f2er.com/php/134357.html

猜你在找的PHP相关文章