Table of Contents
Smarty は、テンプレートで使用可能なカスタム関数をいくつか実装しています。
{assign} は、テンプレート変数を
テンプレートの実行時に
割り当てます。
| 属性名 | 型 | 必須 | デフォルト | 概要 |
|---|---|---|---|---|
| var | string | Yes | n/a | 割り当てられるテンプレート変数の名前 |
| value | string | Yes | n/a | テンプレート変数に割り当てる値 |
Example 8.1. {assign}
{assign var='name' value='Bob'}
The value of $name is {$name}.
上の例の出力
The value of $name is Bob.
Example 8.2. {assign} での演算子の使用
この複雑な例では、変数を `バッククォート` で囲む必要があります。
{assign var=running_total value=`$running_total+$some_array[row].some_value`}
Example 8.3. PHP スクリプトからの {assign} 変数へのアクセス
PHP スクリプトから {assign} 変数にアクセスするには
get_template_vars()
を使用します。これは、変数 $foo
を作成するテンプレートです。
{assign var='foo' value='Smarty'}
テンプレート変数は、以下のスクリプトのように テンプレートの実行後か実行中にしか利用できません。
<?php
// これは何も出力しません。テンプレートがまだ実行されていないからです。
echo $smarty->get_template_vars('foo');
// テンプレートを変数に格納します。
$whole_page = $smarty->fetch('index.tpl');
// これは 'smarty' と出力します。テンプレートが実行されたからです。
echo $smarty->get_template_vars('foo');
$smarty->assign('foo','Even smarter');
// これは 'Even smarter' を出力します。
echo $smarty->get_template_vars('foo');
?>
次の関数も、オプションで テンプレート変数へ割り当てることができます。
{capture}、
{include}、
{include_php}、
{insert}、
{counter}、
{cycle}、
{eval}、
{fetch}、
{math}、
{textformat}
assign()
および
get_template_vars()
も参照してください。