名前

assign() — テンプレートに値/オブジェクトを割り当てます。

説明

void assign(mixed var);
void assign(string varname,
            mixed var,
            bool nocache);

テンプレート変数名/値のペアを明示的に指定するか、それらが格納された連想配列を指定します。

オプションの三番目のパラメータ nocacheTRUE を渡すと、 キャッシュしない変数として代入します。詳細は 変数のキャッシュ機能 を参照ください。

注意

オブジェクトをテンプレートに代入/登録するときは、 テンプレートからアクセスするプロパティやメソッドは表示に関する目的でだけ使うようにしましょう。 オブジェクトを通じてアプリケーションのロジックを取り込むのは簡単ですが、 それはまずい設計につながり、管理しづらくなってしまいます。 Smarty ウェブサイトのベストプラクティスのページも参照ください。

例 14.6. assign()


<?php
// 名前/値のペアを渡します
$smarty->assign('Name', 'Fred');
$smarty->assign('Address', $address);

// 連想配列を渡します
$smarty->assign(array('city' => 'Lincoln', 'state' => 'Nebraska'));

// 配列を渡します
$myArray = array('no' => 10, 'label' => 'Peanuts');
$smarty->assign('foo',$myArray);

// データベース (例: adodb) の行を渡します
$sql = 'select id, name, email from contacts where contact ='.$id;
$smarty->assign('contact', $db->getRow($sql));
?>

テンプレートの内容


{* 変数は、php と同様に大文字小文字を区別することに注意しましょう *}
{$Name}
{$Address}
{$city}
{$state}

{$foo.no}, {$foo.label}
{$contact.id}, {$contact.name},{$contact.email}

より複雑な配列の割り当てに関しては、 {foreach} および {section} を参照してください。

assignByRef()getTemplateVars()clearAssign()append() および {assign} も参照してください。