这是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中完全是荒谬的。
答案 0 :(得分:4)
或者PHP数组实际上与C和Java等语言中的数组不一样(就内存而言)?
在PHP中,数组实际上是哈希表。但是,内存管理难以比较,因为它们是两种完全不同的语言。