質問編集履歴

1

検証した結果と分析について追記

2018/12/04 03:16

投稿

tokyodesk
tokyodesk

スコア56

test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,35 @@
33
33
  これはどうしてなのでしょうか。
34
34
 
35
35
  レファレンスの意味がよくわかりません。
36
+
37
+
38
+
39
+ (追記①)
40
+
41
+ アドバイスありがとうございます。
42
+
43
+ 「$a=&$c」のような使い方では、$cが$aのエイリアスのように振る舞うと考えれば理解できたのですが、foreachで「$a as &$value」のように書かれた時に何がどうなっているのかわかりませんでした。
44
+
45
+
46
+
47
+ ```
48
+
49
+ $a = array(1, 2, 3, 4);
50
+
51
+ foreach ($a as $value) {
52
+
53
+ $value = $value * 2;
54
+
55
+ echo $value.'<br>';
56
+
57
+ var_dump($a);
58
+
59
+ }
60
+
61
+ ```
62
+
63
+ 上記のように「&」をつけない場合は$valueは2倍されていますが、$aは2倍されていません。
64
+
65
+ 逆に「foreach ($a as &$value)」のように、「&」をつけると、$aも2倍されます。
66
+
67
+ 「$a as &$value」と書くと$aは$valueを参照するようになると考えればいいのでしょうか?