从string转换为int的数字会改变php中的值

use*_*245 3 php string integer casting

我正在使用PHP进行项目,并尝试使用其中一个参数$_POST,遗憾的是我想将结果发送到Web服务,该服务只接受参数作为整数.所以我必须使用类型转换,(int)但这项工作将改变参数的值,例如:

$o =  4924869620;
$c = (int) $o;
Run Code Online (Sandbox Code Playgroud)

然后c将具有值629902324

为什么会发生这件事?我怎样才能保持价值相同?我也使用过intval(),它也会改变价值

Kas*_*lek 5

我猜你是在32位系统上运行,这意味着最大的int将是4294967295类型转换为float instad:

$c = (float) $o;
Run Code Online (Sandbox Code Playgroud)