php - foreach は元の配列のコピーを操作するのに、このように記述しても元の配列を変更できるのはなぜですか?
三叔
三叔 2017-06-22 11:53:30
0
4
1131

foreach ループは元の配列のコピーを使用します。参照割り当て後に元の配列を変更できるのはなぜですか?

リーリー

この段落は、foreach 操作が元の配列のコピーであることを証明できます。
さらに、元の配列は同期中に途中で失われ、元の配列の内部ポインタは 1 回だけ移動されました。
後続の操作すべてコピー上で実行される

にあります リーリー

参照代入を使用する場合、配列の参照状況は以下のようになります

リーリー

辛抱強いご回答ありがとうございました

三叔
三叔

全員に返信(4)
给我你的怀抱

& 記号を追加した後は、元の配列のコピーは使用されません。アンパサンドがなければ、それは確かに元の配列のコピーです。アンパサンドの追加はポインターと同等であり、それに名前を割り当てるだけです。したがって、新しい配列を変更すると、元の配列も変更されます。
PHP 5 以降では、$value の前に & を追加することで配列のセルを簡単に変更できます。このメソッドは、値をコピーするのではなく、参照によって割り当てます。

リーリー
いいねを押す +0
習慣沉默

アドレスを渡すシンボル&を追加すると、$aNewValue は配列内の各要素へのポインターになります。これは、元の配列を変更するのと同じです

いいねを押す +0
phpcn_u1582

PHP は書き込み時にコピーします。コピー時に値を指すために新しいポインターを使用するだけです。

いいねを押す +0
Ty80

これは変数への参照であり、2 つの変数は同じアドレスを指します。コピーを操作すると、元の配列も変更されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート