1

这是Java中的一个数组:

int[] myArray = new int[3];
myArray[0] = 0;
myArray[1] = 1;
myArray[2] = 2;

第一行立即保留 3 个连续的内存块。创建第四个元素实际上需要使用 int[4] 创建一个新数组,然后将索引 0 到 2 的值传输到新数组中。如下所示:

int[] mySecondArray = new int[4];
for (int i = 0; i < myArray.length; i += 1) {
    mySecondArray[i] = myArray[i];
}
mySecondArray[3] = 3;

但是在 PHP 中,我们可以声明一个数组,然后简单地添加另一个元素,而无需像 Java 那样大惊小怪。

$my_array = array(0, 1, 2);
$my_array[] = 4;

在将附加元素推送到现有数组后,PHP 是否真的负责创建新数组?还是 PHP 数组实际上与 C 和 Java 等语言中的数组不同(在内存方面)?我有点担心,因为我看到很多 PHP 代码遍历一个循环并将 50 多个新元素附加到现有数组中,这在 Java 中是完全可笑的。

4

1 回答 1

4

还是 PHP 数组实际上与 C 和 Java 等语言中的数组不同(在内存方面)?

在 PHP 中,数组实际上是哈希表。但是,内存管理几乎没有可比性,因为它们是两种完全不同的语言。

于 2012-07-09T20:15:01.103 回答