変数

テンプレート変数は、先頭にドル記号 $ を付けます。 変数名には PHP の変数 と同様に英数字およびアンダースコアが使用できます。 配列の参照には、インデックスの数値もしくはそれ以外の文字を使用できます。 オブジェクトのプロパティとメソッドの参照も同様です。

例. 変数
  1. <{$foo}> <-- 単純な変数 (配列やオブジェクト以外) を表示します。
  2. <{$foo.4}> <-- 0 から始まるインデックスを持った配列の 5 番目の要素を表示します。
  3. <{$foo.bar}> <-- "bar" というキーに対応する配列の値を表示します。PHP の $foo['bar'] と同じです。
  4. <{$foo->bar}> <-- オブジェクトのプロパティ "bar" を表示します。$foo が連想配列の場合 $foo['bar'] と同じです。
  5. <{$foo->bar()}> <-- オブジェクトのメソッド "bar" の返り値を表示します。
  6. <{$foo[bar]}> <-- section ループ内でのみ正当な構文です。<{section}> の項を参照のこと。
  7. その他多くの組み合わせが可能です。
  8. <{$foo.bar.baz}>
  9. <{$foo.4.baz}>
  10. <{$foo.bar.baz.4}>
  11. <{$foo->bar->baz()}>
  12. <{$foo->bar($baz, 2, $bar)}> <-- パラメータを渡します。

$simplateassign() も参照してください。

Smarty との差分

Smarty では可能な以下のような書き方はサポートしていません。

<{$foo.$bar}>   <-- Smarty の場合、これは PHP の $foo[$bar] と同じですが、未サポートです。

連想配列のキーを変数で与えたい場合は php プログラムで工夫する必要があります。