回答編集履歴

1

追記

2015/07/15 01:30

投稿

ngyuki
ngyuki

スコア4514

test CHANGED
@@ -27,3 +27,85 @@
27
27
 
28
28
 
29
29
  所要時間は 15 分ぐらい(9割ぐらい変数展開の試行錯誤(^_^;))
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ さらにもっと奇をてらってみました。
38
+
39
+
40
+
41
+ ```lang-php
42
+
43
+ <?php
44
+
45
+ function main()
46
+
47
+ {
48
+
49
+ ${0} = 0;
50
+
51
+ ${1} = 1;
52
+
53
+
54
+
55
+ for ($i=1; $i<50; $i++) {
56
+
57
+ ${$i&1} = ${0} + ${1};
58
+
59
+ }
60
+
61
+
62
+
63
+ var_dump(${0} + ${1}); // int(12586269025)
64
+
65
+
66
+
67
+ // このスコープには下記の3つの変数しか存在しない
68
+
69
+ print_r(get_defined_vars());
70
+
71
+ /*
72
+
73
+ Array
74
+
75
+ (
76
+
77
+ [0] => 4807526976
78
+
79
+ [1] => 7778742049
80
+
81
+ [i] => 50
82
+
83
+ )
84
+
85
+ */
86
+
87
+ }
88
+
89
+
90
+
91
+ // 関数にしているのはスコープの中の変数の一覧を得るためです
92
+
93
+ // 関数じゃなくても動作します
94
+
95
+ main();
96
+
97
+ ```
98
+
99
+
100
+
101
+ やっていることは↑と同じですが、変数名を普通ではありえない数字だけの名前にすることで変数展開をシンプルにしました。
102
+
103
+
104
+
105
+ ---
106
+
107
+
108
+
109
+ なお、この回答のような記法は実際に書かれるとブチ切れ必死なので使うべきではありません。
110
+
111
+