【Smarty】連想配列のデータをテンプレートにセットする

Smartyで連想配列のデータをテンプレートにセットする場合、assignメソッドへの第一引数に名前を指定することなく、そのまま渡すことでテンプレートへ値を埋め込むことが出来ます。

(Smarty 3.1, PHP 7.4.4)

1. (通常)assignを使用して変数をテンプレートへ埋め込む場合

$smarty->assign('name', 'ken');

変数名、$nameとしてテンプレートから利用することが出来る

<p>name: {$name}</p>

2. 連想配列をassignでセットする

PHPの連想配列とは、キー(添字)と値の組み合わせでデータを格納するデータ形式のこと
「キー => 値」の形式でひとつの配列の中に複数組みのデータを格納する。

$person = [
    'name' => 'ken', 
    'age' => 32, 
    'gender' => 'male'
];

$smarty->assign($person);

対象の配列データのみをassignにセットするだけで、テンプレート側からは変数名に「$配列のキー」を指定することで値を取り出すことが出来る。

<p>name: {$name}</p>
<p>age: {$age}</p>
<p>gender: {$gender}</p>

(表示結果)

name: ken

age: 32

gender: male

Follow me!