PHPで変数名を動的に変えて使う方法
2014/07/02
変数名を動的に変えて使用したかった。
調べてみると可変変数というものがあり、希望の動作になった。
■リファレンス
http://php.net/manual/ja/language.variables.variable.php
■参考サイト
http://www.res-system.com/weblog/item/607
http://d.hatena.ne.jp/purazumakoi/20071210/1197273718
■使い方
$i = 1;
${'hoge' . $i}; //$hoge1と同じ
■作ったソース
アンケートみたいなものが作りたかった。
アンケートの質問数は不特定で、質問パターンは
チェックボックスorラジオボタンorテキストボックスorテキストエリア。
何がいくつ来るか不特定。だいぶはしょるけど下記のような感じでいけた。
/*送信側*/
<input type="checkbox" name="ans_<?=$seq;?>[]" value="hoge" / >
<input type="hidden" name="seq" value="<?=$seq;?>">
/*受信側*/
for ($i = 0; $i < count($seq); $i++) { //回答を取得していく
$ans_val = ${'ans_' . $seq[$i]}; //POSTで届いた回答を可変変数にする
if (is_array($ans_val)) { //配列(チェックボックス)で来た場合はカンマ区切りにする
$ans_val = join(',', $ans_val);
}
}
関連記事
-
-
PHPにて指定した期間内の合計日数を出力する方法
PHPにて開始日と終了日をユーザが入力すると、その期間内の合計日数を出力させたい ...
-
-
PHPにて短縮URLを展開させて、元のURLを取得する方法
短縮されたURLを展開させて、元のURLを取得したいというケースがあった。方法を ...
-
-
CodeIgniter4で簡易版ログインシステムの実装方法(管理画面向け)
CodeIgniter4で管理画面向けの簡易版ログインシステムを作成したい。通常 ...
-
-
PHPで特定のサイトからのリクエストのみ受け付けて処理する方法
指定したサイトからのリクエストのみ受け付けて処理したいという状況があった。その他 ...
-
-
PHP8系で「Warning: Constant xxxxx already defined in」エラーの対応方法
PHP8系&WordPress6.4.3で「Warning: Const ...