ソース表示: Basic.syntax.variable #48592

[[PageNavi(NavigationList)]]

=== 変数 ===

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

==== 例. 変数 ====

{{{ code
<{$foo}>        <-- 単純な変数 (配列やオブジェクト以外) を表示します。
<{$foo.4}>      <-- 0 から始まるインデックスを持った配列の 5 番目の要素を表示します。
<{$foo.bar}>    <-- "bar" というキーに対応する配列の値を表示します。PHP の $foo['bar'] と同じです。
<{$foo->bar}>   <-- オブジェクトのプロパティ "bar" を表示します。$foo が連想配列の場合 $foo['bar'] と同じです。
<{$foo->bar()}> <-- オブジェクトのメソッド "bar" の返り値を表示します。
<{$foo[bar]}>   <-- sectionループ内でのみ正当な構文です。{section}の項を参照のこと。

その他多くの組み合わせが可能です。

<{$foo.bar.baz}>
<{$foo.4.baz}>
<{$foo.bar.baz.4}>
<{$foo->bar->baz()}>
<{$foo->bar($baz, 2, $bar)}> <-- パラメータを渡します。
}}}

[Variable.simplate $simplate]、[Api.function.assign assign()] も参照してください。

==== Smarty との差分 ====

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

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

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

[[PageNavi(NavigationList)]]