我试过(int) "4209531264"
和intval("4209531264")
但遗憾的是我得到的是2147483647
(我意识到这是因为32位架构或某些php依赖或其他东西)。
我提出了"4209531264" + 0
,它返回了正确的结果,但令人惊讶的是它看起来有效,因为它超出了maxint。
但真正的问题是:这是将字符串转换为long的“正确方法”吗?
编辑:
(float)
即是。
感谢您的评论!眼睛开放!
答案 0 :(得分:14)
只要您不是非常关注最终的价值,"number" + 0
可能是转换输入的最佳方式,因为它会转换为" natural"数字数据类型。
如果输入没有小数部分并且适合(参见PHP_INT_MAX
)或浮点数(如果没有),则结果将为整数。