这是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 中是完全可笑的。