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

回答編集履歴

2

訂正

2016/03/11 06:49

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,1 +1,17 @@
1
+ 配列のことについて最後に書かれていたのを見落としていたので一回回答消しました,すみません.
2
+
3
+ - [可変変数](http://php.net/manual/ja/language.variables.variable.php)
4
+
1
- 一旦消しま・・・・・・・・・
5
+ この機能を使うのが王道で
6
+
7
+ ```php
8
+ for ($i = 1; $i < 6; ++$i) {
9
+ echo ${"test{$i}abc"};
10
+ }
11
+ ```
12
+
13
+ その他,以下のような選択肢もあります.`eval`はやめておいたほうがいいですが,`compact`や`get_defined_vars`は普通に現役です.
14
+
15
+ - [eval](http://php.net/manual/ja/function.eval.php)
16
+ - [compact](http://php.net/manual/ja/function.compact.php)
17
+ - [get_defined_vars](http://php.net/manual/ja/function.get-defined-vars.php)

1

一旦消す

2016/03/11 06:49

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -1,28 +1,1 @@
1
- みなさん回答されている通り**[可変変数](http://php.net/manual/ja/language.variables.variable.php)**を使えば実現出来るんですが,そもそもこの機能ほとんど使う機会はありません.まず**[配列](http://php.net/manual/ja/language.types.array.php)**の利用を真っ先に検討すべきです.
2
-
3
- > 例えばある事情でこういう変数があったとします
4
- > `$test1abc`
1
+ 一旦消します・・・・・・・・・
5
- > `$test2abc`
6
- > `$test3abc`
7
- > `$test4abc`
8
- > `$test5abc`
9
-
10
- もうこの時点で設計ミスです.
11
-
12
- ```php
13
- $test = [
14
- ['abc' => 'あ'],
15
- ['abc' => 'い'],
16
- ['abc' => 'う'],
17
- ['abc' => 'え'],
18
- ['abc' => 'お'],
19
- ];
20
-
21
- echo $test[0]['abc'];
22
- echo $test[1]['abc'];
23
- echo $test[2]['abc'];
24
- echo $test[3]['abc'];
25
- echo $test[4]['abc'];
26
- ```
27
-
28
- とすべきです.