phpでは、
$foo = 1234;
とすることにより、変数を宣言できます。
上記の例では、$fooという変数に、「1234」という値を格納しています。
smartyでも、テンプレート内で利用できる変数を宣言することができます。
smartyでテンプレート内変数を定義する方法
{assign var='foo' value='1234'}
上記のようにすると、「$foo」という変数に「1234」という値を格納することができます。var=''
内に「$」は必要ありません。
なお、下記のように、変数の計算結果を変数に格納することもできます。
{assign var='foo' value=$hoge*$piyo}
このように宣言した変数は、変数を定義したテンプレートの変数宣言以下の部分と、変数を定義したテンプレートからincludeしたテンプレート内でのみ利用できます。
たとえば、
{$foo}{* 表示されません *} {assign var='foo' value='1234'} {$foo}{* 表示されます*} {include file='./child.html'}
上記のように記載された[sample.html]があるとします。
1行目の$fooは、まだなにも宣言されていないので出力が失敗します。
3行目の$fooは、宣言が2行目で完了しているので成功します。
また、includeしているchild.html内でも利用することができます。
参考URL
- smarty:{assign}