SORICH SAMURAIby SORICH

hello,world

2010年6月
             
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

最新の記事

カテゴリー

月間アーカイブ

最新のトラックバック

最新のトラックバック

php    2009.03.01 [ Sun ] 1:11

配列を参照渡しでイテレート した場合、
配列の値は、期待どおり、このようになりますね。
・var_dumpの結果
array(3) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "bb"
  [2]=>
  &string(2) "cc"
}
しかし、よく見ると、$array[2]が参照されっぱなし!
$valueのスコープの範囲は、foreachの中だけかと思いこんでました。


なので、うっかり次のようなコードを実行すると、
$valueは$array1[2]の参照なので、$array2をイテレートするたびに、$array1[2]の値が変化します。
・var_dumpの結果
array(3) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "bb"
  [2]=>
  &string(2) "ff"
}
array(3) {
  [0]=>
  string(1) "d"
  [1]=>
  string(1) "e"
  [2]=>
  string(1) "f"
}
参照を解除したい場合は、unsetしてあげましょう。

・var_dumpの結果
array(3) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "bb"
  [2]=>
  string(2) "cc"
}

トラックバック(0) コメント(0)

カテゴリ:

コメントする




トラックバック(0)

このブログ記事を参照しているブログ一覧: [php]思いの外参照してた


このブログ記事に対するトラックバックURL:

Copyright(C) SORICH Ltd. All Rights Reserved.