PHP中字符串转换为长整型的正确方法

PHP中字符串转换为长整型的正确方法,php,string,casting,long-integer,typeconverter,Php,String,Casting,Long Integer,Typeconverter,我尝试了(int)“4209531264”和intval(“4209531264”) 但遗憾的是,我得到的只是2147483647(我意识到这是因为32位体系结构或一些php依赖项或其他原因) 我提出了“4209531264”+0,它返回正确的结果,但看到它工作起来令人惊讶,因为它超出了maxint 但真正的问题是:这是将字符串转换为长字符串的“正确方法”吗 编辑: (float)也就是说 谢谢你的评论!大开眼界 只要您对最终得到的值不太在意,“number”+0可能是转换输入的最佳方式,因为它

我尝试了
(int)“4209531264”
intval(“4209531264”)
但遗憾的是,我得到的只是
2147483647
(我意识到这是因为32位体系结构或一些php依赖项或其他原因)

我提出了
“4209531264”+0
,它返回正确的结果,但看到它工作起来令人惊讶,因为它超出了maxint

但真正的问题是:这是将字符串转换为长字符串的“正确方法”吗

编辑:

(float)
也就是说


谢谢你的评论!大开眼界

只要您对最终得到的值不太在意,
“number”+0
可能是转换输入的最佳方式,因为它会转换为“自然”数字数据类型


如果输入没有小数部分,则结果将是整数(请参见
PHP\u INT\u MAX
),如果输入没有小数部分,则结果将是浮点。

(float)“您的字符串”
您在32位平台上吗?您需要使用
float
而不是
int
,因为该数字对于32位有符号整数来说太大。最大值取决于系统。32位系统的最大有符号整数范围为-2147483648到2147483647。例如,在这样一个系统上,intval('1000000000000')将返回2147483647。2147483647是32位系统上的最大整数值