関数仕様編 その8(参照について その5)
2015/10/23 19:34
※この記事は読者によって投稿されたユーザー投稿です:
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「関数仕様編 その8(参照について その5)」を公開しました。
参照の五回目、配列のお話の続きでございます。
端的には、前回ありました「”オブジェクトID”という値を持ち回る事による、クラスインスタンスの参照っぽい動き」と
「変数の参照代入」との違い、に近い内容が今回も発生いたします。
まずはわかりきったサンプルコードで、足場を固めながら進めていきましょう。
$awk = array(1,2,3);
$awk2 = $awk;
var_dump($awk);
var_dump($awk2);
copy on writeがあるので厳密には違いますが、基本的には「$awkと$awk2は、copyされた、別々の配列」になります。
ですので、配列操作によって片方を変更しても、もう片方には影響が及びません。
$awk = array(1,2,3);
$awk2 = $awk;
//
$awk[1] = ‘abc';
//
var_dump($awk);
var_dump($awk2);
結果
array(3) {
[0]=>
int(1)
[1]=>
string(3) “abc”
[2]=>
int(3)
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
さて…ここから。
実は、こんなコードを書くと。一部では「………はて???」となるような現実が出てきます。
この続きは以下をご覧ください
http://resocia.jp/column/1593/
ソーシャルもやってます!