2 回答

TA贡献1963条经验 获得超6个赞
在标准 PHP 中, long类型是不存在的。
所以,如果你想要一个长整数,你可以使用标准的int类型,或者使用扩展,比如BC或GMP。
具体来说,值695690829980893234在64位PHP的整数范围内,但在32位PHP的整数范围之外。
转换为int:
首先,请确保数字在int范围内。然后只需转换
$res = intval("695690829980893234");
if($res<PHP_INT_MAX){
// OK! inside the positive limitation
}
转换为GMP
一个 GMP 对象表示一个任意长度的整数:
$res = gmp_init("695690829980893234");
然后,使用GMP函数对号码进行操作,如:
$res = gmp_add($res, gmp_init("100"));
$res = gmp_sub($res, gmp_init("200"));
最后,将其转换回 int 或 string:
$int = gmp_intval($res);
$str = gmp_strval($res);
希望这个答案有所帮助。

TA贡献1802条经验 获得超5个赞
确保您运行的是 64 位版本的 PHP。
echo PHP_INT_SIZE;
8
然后它会很容易地将字符串转换为 int
$a = "695690829980893234";
$b = (int)$a;
var_dump($a, $b);
string(18) "695690829980893234"
int(695690829980893234)
- 2 回答
- 0 关注
- 168 浏览
添加回答
举报