smartyのテンプレートの「{ }」の中で、変数を展開する方法を教えてください。

具体的には、hogehoge○○といった変数を使って、
{if $smarty.request.hogehoge{$key} == 2} hogehoge {/if}
といった用途に使いたいのですが、
{$key}の部分がうまく展開できません。
・変数を配列にする。
・phpタグを使う。
などの方法でも解決可能かとは思いますが、
上記の{$key}部分が展開できれば効率が良いので、
「{ }」内での展開方法をご存知でしたらお教えください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/24 14:19:56
  • 終了:--

回答(1件)

id:kuippa No.1

くいっぱ回答回数1030ベストアンサー獲得回数132004/11/24 17:06:43

ポイント100pt

ん。質問内容を取り違えてたらごめんなさい。

{$key}が”X”であったばあい、

hogehoge{$key}を例えば「hogehogeX」という変数として実行したいということでしょうか???

残念ながら、展開し終わった文字列を変数として読み込むのはスクリプトの実行タイミングが同一である以上は難しいです。

できるかどうか試していませんが、

$smarty.request.hogehoge[{$key}]

のように、このような配列で処理するのはどうでしょうか。これだったらまだいけます。

#余談ですが…、smarty流行りだした気配ですかね?本日二個めの回答です…。他に回答者が居ないような気配もしているのですが…。

id:nxts

返信が遅くなりました。

質問内容はkuippaさんの仰るとおり、

「hogehogeX」という変数として使いたいという意味です。

分かりにくくてすいません。

やはり、展開したものを変数として扱うのは難しいですか…。

こちらでも色々試してみたのですが、解決策は見つかりませんでした。

次善策としては、

kuippaさんも仰るとおり、「hogehoge」を配列にしてしまい、

$smarty.request.hogehoge[$key]

$smarty.request.hogehoge.$key

などとする、という手はありました。

引き続き方法を探してみます。

回答ありがとうございました!

今後ともよろしくお願いします。

2004/12/02 23:09:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません