1

Java の配列は次のとおりです。

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

最初の行は、3 つの連続するメモリ ブロックをすぐに予約します。4 番目の要素を作成するには、実際には 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 などの言語の配列と同じではありませんか? ループを反復処理し、既存の配列に 50 個以上の新しい要素を追加する PHP コードがたくさんあるのを目にするので、私は少し心配しています。

4

1 に答える 1

4

または、PHP配列は、実際にはCやJavaなどの言語の配列と(メモリの点で)同じではありませんか?

PHPでは、配列は実際にはハッシュテーブルです。ただし、メモリ管理は2つの完全に異なる言語であるため、ほとんど比較できません。

于 2012-07-09T20:15:01.103 に答える