用途
SmartyでPHPからテンプレートに値を渡したい時に使う。
PHPで処理したものなどをSmartyでテンプレートに渡したい時に使う。
使用方法
phpファイルでの渡し方
$smarty->assign("変数名", "値");
渡す際は、assign
の第1引数に「変数名」、第2引数に「渡したい値」を指定する。
テンプレートファイルでの受け取り方(表示の仕方)
{$変数名}
受け取る際は、phpファイルで指定した変数名の先頭に $
をつけて {}
で囲む。
文字列を渡す
phpファイルで文字列を渡す
$smarty->assign("hoge", "abcdefg");
テンプレートファイルで文字列を受け取る
{$hoge}です。
// 結果
abcdefgです。
配列を渡す
phpファイルで配列を渡す
$array = ["a", "b", "c", "d", "e"]
$smarty->assign("hoge", $array);
テンプレートファイルで文字列を受け取る
{$hoge[0]}です。<br>
{$hoge[1]}です。<br>
{$hoge[2]}です。<br>
{$hoge[3]}です。<br>
{$hoge[4]}です。
// 結果
aです。
bです。
cです。
dです。
eです。
連想配列を渡す
phpファイルで連想配列を渡す
$array = ["name"=>"tanaka", "color"=>"red", "number"=>"1"]
$smarty->assign("hoge", $array);
テンプレートファイルで文字列を受け取る
名前は{$hoge.name}です。<br>
色は{$hoge.color}です。<br>
数字は{$hoge.number}です。
// 結果
名前はtanakaです。
色はredです。
数字は1です。
デフォルト値を設定する
phpファイルで文字列を渡す
$smarty->assign("hoge", "");
テンプレートファイルで文字列を受け取る
{$hoge|default:"ない"}です。
// 結果
ないです。
※変数の値が空だった場合に、デフォルト値が表示される。
フォーマットを指定する
テンプレートファイル
{$smarty.now|date_format:"%H時%M分"}
{$smarty.now|date_format:"%H:%M:%S"}
// 結果
10時10分
10:10:10
※smarty.now
は現在時刻を表します
if文
phpファイルで文字列を渡す
$smarty->assign("hoge", "abc");
テンプレートファイルで文字列を受け取る
{if $hoge == "123"}
123です。
{elseif $hoge == "abc"}
abcです。
{else}
当てはまりません。
{/if}
// 結果
abcです。
foreach
phpファイルで文字列を渡す
$array = ["a", "b", "c", "d", "e"]
$smarty->assign("hogehoge", $array);
テンプレートファイルで文字列を受け取る
{foreach from=$hogehoge item="hoge"}
{$hoge}です。
{/foreach}
// 結果
aです。bです。cです。dです。eです。
※from=phpファイルで指定した変数名
, item=foreach内で使用する名前
のように書く。
foreach内では item
で指定した名前の先頭に $
をつけて、 {}
で囲む。
メモ書き(コメントアウト)
テンプレートファイルで文字列を受け取る
{*メモをここに書く*}
※メモとして残しておきたい文を {*
と *}
で囲む。(開発者のメモなど)