【发布时间】:2016-09-28 14:07:31
【问题描述】:
所以我有这个简单的代码:
$var = abs(crc32('string - 8 characters')).rand(100,999);
var_dump($var);
echo '<br>';
var_dump((int)$var);
echo '<br>';
var_dump(intval($var));
结果:
string(13) "2047654753402"
int(2147483647)
int(2147483647)
为什么整数值是2147483647?我希望它是2047654753402。我只想将字符串转换为整数而不更改值。
【问题讨论】:
-
考虑到您的整数是有符号的 32 位整数.....当您的字符串值超出该范围时,您希望发生什么?甚至有一整页的 PHP 文档解释了整数溢出时会发生什么 - php.net/manual/en/language.types.integer.php
-
如果您需要使用该大小的整数,请切换到 64 位 PHP
-
Why the integer value is 2147483647?因为2147483647是32位有符号整数可以存储的最大值
标签: php string integer type-conversion