回答編集履歴

2

修正

2018/08/10 08:05

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- **追記**
5
+ **前言撤回^^;**
6
6
 
7
7
  失礼。使ってますね^^;
8
8
 

1

追記

2018/08/10 08:04

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,89 @@
1
1
  参照渡し、使ってない気がするけど。
2
+
3
+
4
+
5
+ **追記**
6
+
7
+ 失礼。使ってますね^^;
8
+
9
+ $index[$key] が参照渡しになっているため、最終的な $index を基準(?)に $tree が構築されます。
10
+
11
+ 動作確認用のサンプルコードを以下に記述します。
12
+
13
+
14
+
15
+ ```php
16
+
17
+ <?php
18
+
19
+ $tmp = [1,2,3,4];
20
+
21
+ $result =[];
22
+
23
+ foreach ($tmp as $key=>$val) {
24
+
25
+ $result[$key]=$val;
26
+
27
+ }
28
+
29
+ var_export($result);
30
+
31
+ $tmp = [1,2,3,4];
32
+
33
+ foreach ($tmp as $key=>$val) {
34
+
35
+ $result[$key]=&$val;
36
+
37
+ }
38
+
39
+ //val が参照渡しになっているので、すべての value が最終値の 4 になる
40
+
41
+ var_export($result);
42
+
43
+
44
+
45
+ $val=10;
46
+
47
+ //val を変更したため、参照渡しされた箇所が変更される
48
+
49
+ var_export($result);
50
+
51
+
52
+
53
+ //
54
+
55
+ array (
56
+
57
+ 0 => 1,
58
+
59
+ 1 => 2,
60
+
61
+ 2 => 3,
62
+
63
+ 3 => 4,
64
+
65
+ )
66
+
67
+ array (
68
+
69
+ 0 => 4,
70
+
71
+ 1 => 4,
72
+
73
+ 2 => 4,
74
+
75
+ 3 => 4,
76
+
77
+ )array (
78
+
79
+ 0 => 10,
80
+
81
+ 1 => 10,
82
+
83
+ 2 => 10,
84
+
85
+ 3 => 10,
86
+
87
+ )
88
+
89
+ ```