teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2015/07/15 01:30

投稿

ngyuki
ngyuki

スコア4516

answer CHANGED
@@ -12,4 +12,44 @@
12
12
  var_dump($_0 + $_1); // int(12586269025)
13
13
  ```
14
14
 
15
- 所要時間は 15 分ぐらい(9割ぐらい変数展開の試行錯誤(^_^;))
15
+ 所要時間は 15 分ぐらい(9割ぐらい変数展開の試行錯誤(^_^;))
16
+
17
+ ---
18
+
19
+ さらにもっと奇をてらってみました。
20
+
21
+ ```lang-php
22
+ <?php
23
+ function main()
24
+ {
25
+ ${0} = 0;
26
+ ${1} = 1;
27
+
28
+ for ($i=1; $i<50; $i++) {
29
+ ${$i&1} = ${0} + ${1};
30
+ }
31
+
32
+ var_dump(${0} + ${1}); // int(12586269025)
33
+
34
+ // このスコープには下記の3つの変数しか存在しない
35
+ print_r(get_defined_vars());
36
+ /*
37
+ Array
38
+ (
39
+ [0] => 4807526976
40
+ [1] => 7778742049
41
+ [i] => 50
42
+ )
43
+ */
44
+ }
45
+
46
+ // 関数にしているのはスコープの中の変数の一覧を得るためです
47
+ // 関数じゃなくても動作します
48
+ main();
49
+ ```
50
+
51
+ やっていることは↑と同じですが、変数名を普通ではありえない数字だけの名前にすることで変数展開をシンプルにしました。
52
+
53
+ ---
54
+
55
+ なお、この回答のような記法は実際に書かれるとブチ切れ必死なので使うべきではありません。