我们喜欢将数据库值存储在数组中。但是我们不知道 PHP 中允许的数组的最大大小?
原文由 Amruta 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们喜欢将数据库值存储在数组中。但是我们不知道 PHP 中允许的数组的最大大小?
原文由 Amruta 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.5k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答883 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答941 阅读
1 回答920 阅读
1 回答852 阅读
2,147,483,647 项, _即使在 64 位 PHP 上也是如此_。 (PHP 7.2.24)
(如果有人手边有最新的 PHP 8,我会对 64 位的值是否提高感兴趣。)
至少,您可以使用
array_fill()
或range()
拥有的最大数组似乎是2^32-1
项目。虽然键可以是任何东西,包括超出该范围的数字,但如果从零开始,步长为 1,则最高索引可以是 2147483646。如果您问这个问题,您可能会看到如下错误:
甚至:
…或者,最有可能的是,明确提到“ 最大数组大小”的错误:
对阅读此问题的人的警告:
您遇到的最常见的地方是误用/滥用
range()
运算符,就好像它是一个迭代器一样。它在其他语言中,但在 PHP 中不是:它是一个数组填充运算符,就像array_fill()
。所以很有可能你可以完全避免使用数组。执行以下操作是不安全的:
而是这样做:
同样,我看到人们这样做:
相反,它可以以更安全、惯用和高性能的方式重写:
如果您遇到有关数组大小的错误,则很有可能您正在做一些您可能应该避免的疯狂事情。