人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: nxts
●カテゴリ:コンピュータ
✍キーワード:Key PHP Smarty タグ テンプレート
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● くいっぱ
●100ポイント

http://sunset.freespace.jp/smarty/SmartyManual_2-6-3J_html/l...

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

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

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

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

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

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

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

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

◎質問者からの返答

返信が遅くなりました。

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

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

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

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

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

次善策としては、

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

$smarty.request.hogehoge[$key]

$smarty.request.hogehoge.$key

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ