{eval}関数 変数をテンプレートとして扱う

{eval} は、与えられた変数をテンプレートとして扱います。
テンプレート変数又はテンプレートタグを変数や設定ファイル内に埋め込むような用途に使われます。

assign 属性が指定されると、{eval} 関数の出力はこのテンプレート変数に割り当てられ、テンプレートに出力されません。

属性名必須デフォルト概要
varmixedYesn/a評価される変数 (又は文字列)
assignstringNon/a出力が割り当てられるテンプレート変数

与えられた変数は、テンプレートと同じように扱われます。
デリミタのエスケープやセキュリティ機能も、テンプレートと同様になります。

評価される変数はリクエスト毎にコンパイルされるので、コンパイルされた形式では保存されません。
しかしキャッシュ が有効に設定されている場合は、残りのテンプレートの出力に関してはキャッシュされます。

PHP

$hoge = 'テスト';
$foo = 'かも';

//変数内に、さらに変数を使えます。
$str1 = ' {$hoge} - {$foo}';

//Smartyの修飾子やsmarty変数も使えます。
$str2 = 'サーバー名は {$smarty.server.SERVER_NAME|upper} ' . 'です';

$smarty->assign('hoge',$hoge);
$smarty->assign('foo',$foo);
$smarty->assign('str1',$str1);
$smarty->assign('str2',$str2);

テンプレート

{eval var=$hoge}
{eval var=$str1}
{eval var=$str2 assign='test'}
{$test}

出力

テスト
テスト - かも
サーバー名は WWW.EXAMPLE.COM です

関連記事

スポンサーリンク

ATAN2関数 2つの引数から逆タンジェント(アークタンジェント)を求める

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る