【PHP】配列の代入はクローンコピーになる

最近、PHPでのプログラムを組む上で、配列の代入の動作がどうだったか少し心配になったので調べてみました。

配列の代入は、代入元の配列の内容そのものが全てコピーされます。他の言語では代入元のクローンを作成し、 代入先の配列に設定する感じです。

以下のソースは代入を行う簡単な例です。

結果は以下の表示になります。

コピー先の配列の内容が、コピー元の内容と異なっていることが分かります。

但し、代入の所で「&」を使用すると、内容がコピーされるのではなく、参照がコピーされます。

この結果は以下の様に、2個の配列の内容が同じになります。


楽天市場

■関連記事
【PHP】可変変数と可変クラスの使い方について
【PHP】配列の中に参照変数を持つことで別々の変数の要素を操作する
【PHP】配列の代入はクローンコピーになる
【PHP】連想配列の様な「stdClass」の使い方について
【PHP】POSTやGETなどのスーパーグローバル変数のアクセスはfilter_inputを使う方が安全らしい
【PHP】array_keys:指定キー検索で見つからない場合の結果は何が返る

デル株式会社
コメント(2)