ホームページ  >  に質問  >  本文

php - foreach は元の配列のコピーを操作するのに、このように記述しても元の配列を変更できるのはなぜですか?

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

リーリー

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

にあります リーリー

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

リーリー

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

三叔三叔2675日前1036

全員に返信(4)返信します

  • 给我你的怀抱

    给我你的怀抱2017-06-22 11:55:30

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

    リーリー

    返事
    0
  • 習慣沉默

    習慣沉默2017-06-22 11:55:30

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

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-06-22 11:55:30

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

    返事
    0
  • PHP中文网

    PHP中文网2017-06-22 11:55:30

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

    返事
    0
  • キャンセル返事