PHP数组:如果我跳过指针,它们会占用内存吗?


PHP arrays: If I skip pointers, do they occupy RAM

给定以下示例:

<?php
$a[7]=0;
$a[1449]=1;
?>

有多少对象占用内存?2个还是1449个?

PHP数组都是关联数组,即使使用数字索引也是如此。它们是用哈希表实现的。元素的数量是2的最小幂,足以容纳所有元素。所以在这一点上,这里有两个元素的空间。如果您添加另一个元素,它将重新分配给4。

下面是关于PHP如何实现数组的讨论: http://nikic.github.io/2012/03/28/Understanding-PHPs-internal-array-implementation.html