• 締切済み

PHPでFORMから来る変数名を変数にするには

PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

みんなの回答

回答No.2

> 値を変数にすることは出来ても変数名を変数にする事は難しいようです $test = 'abc'; $test_name='test'; としているなら、 $$test_nameで、($testの内容の)abcが取り出せます。 ただ、今件なら、 どんなnameでくるかをformを作るときに事前にhiddenかセッションで確保して たとえばhiddenなら <input type="hidden" name="var_name" value="comment"> <input type="text" name="comment"> としておいて、 これのsubimitを受け取るPHP側で echo $_GET[$_GET["var_name"]]; (または $_POST~略) としてはどうでしょう? #というか、全体仕様がわからないのでなんともいえませんが #どんなform名でくるかわからないというのは、 #設計自体がまずい気もしますが。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

$_REQUESTの要素が一つとは限らないので可変で送られてくる データを$test_name に代入する命題も中途半端。 たとえばやろうと思えば、 <? $array=array_values($_REQUEST); $test_name=$array[0]; print $test_name; ?> としてもいいでしょう。 ただもろもろの制限や例外があるのであまりおすすめできません