为什么php没有区分32和64位,而python等语言就有区分呢?

为什么php没有区分32和64位,而python等语言就有区分呢?

回首忆惘然
浏览 924回答 3
3回答

猛跑小猪

PHP没在语言层面都没有直接提供int32、int64这类明确内存使用的类型。 为什么?因为大部分人都不关心一个数字要占多少内存,也懒得区分不同类型的数字,他们只想有一个统一的数字类型,能完成常用的数值计算就可以了。只有一个类型可以大大减少使用者的心智负担,也简化了实现。(PHP还是区分整形和浮点数,不像JS只有浮点数) 通常要明确使用int32或int64的场景就是网络数据传输,这种情况都不是数值运算了,PHP里要么转成字符串当二进制处理,要么用扩展。JS也类似,WebGL里就有确定大小的数组,因为图形API需要这类特殊的数据格式保证高效率。 补充:明确一下这里说的32位和64位是什么? 当我们说32位、64位时可能在说两种东西: 程序的可用地址空间 语言中的整数类型的位数 PHP有32位和64位版本之分,两者最大差别是进程的地址空间的大小。32位程序的进程地址空间是4G,而Windows下的32位程序有2G的地址空间是内核的,程序实际只有2G的可用内存。 而我上面的答案说的是整数类型的位数,例如C语言有short、int、long、long long之分,而PHP只有一种整形,这个整形具体大小是根据程序是32位还是64位定的,但是一个具体的PHP程序里只有确定的一种。 可用在32位程序里实现64位的整形吗?当然可以,两个32位整数合在一起当作64位用也不是不行,GMP甚至实现了任意精度的整形。

江户川乱折腾

以前没有,后来就有了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java