字符串可以大于2^31,有多大?


php 7.0 Strings can bigger than 2^31,How Big?

我确实做了一些工作来理解

来源

升级说明说

在64位构建中支持长度>= 2^31字节的字符串。

但是我读了这个链接

和使用size_t

定义字符串长度的types.h源代码

似乎应该是2^32在32位构建和2^64在64位构建我猜?

在实践中它现在是264-1,因为这是size_t,用于字符串长度的C类型,通常在64位系统上。

然而,在实践中,你实际上不能使字符串那么大,因为没有计算机被创建可以使用接近这个数量的内存。

这个的意思是,如果你有一台16GB RAM的计算机,你可以想象如果你想创建一个15GB的字符串。不过,您不太可能需要这样做。