1

要素をプッシュすると、PHP が新しい配列を作成するのはなぜですか?

$a = array();
$b = $a;

$b[] = "Hello!";
echo count($a);
echo count($b);

ここでは、$a と $b のカウントが等しいと予想しますが、そうではありません。

4

2 に答える 2

3

デフォルトでは、PHP は値を割り当てるときに値をコピーします。参照が必要な場合は、&演算子を使用できます。

$a = array();
$b = &$a;

$b[] = "Hello!";
echo count($a);  // prints 1
echo count($b);  // prints 1
于 2013-08-08T08:37:48.890 に答える
0

これは、$a$bが 2 つの別個の変数であるためです。代入すると、 to$b = $aの内容をコピーするだけで、両方が同じ配列を指すようにはなりません。$a$b

これを行うには、代わりに参照を渡す必要があります。

$b = &$a;

この場合、$b は $a への参照を指します。つまり、両方が同じ配列を指していることを意味し、一方を変更すると両方が変更されます。

于 2013-08-08T08:38:40.657 に答える