Smarty 是什么?
为何使用它?
使用案例及工作流程
语法比较
模板继承
最佳实践
速成教程
assign() — 分配变量/对象到模板
void assign(mixed var);
void assign(string varname,
mixed var,
bool nocache);
你可以明确地传递名称/值的成对,或是包含名称/值对的关联数组。
如果你传递的是可选的第三个 nocache
参数为 TRUE
,则变量分配为非快cache变量。有关详细信息,请查看 变量快cache
。
当你分配/注册对象到模板时,请确保从模板访问的所有属性和方法仅用于显示目的。通过对象注入应用程序逻辑非常容易,而且会造成管理困难的糟糕设计。参见 Smarty 网站的最佳实践部分。
示例 14.6。assign()
<?php // passing name/value pairs $smarty->assign('Name', 'Fred'); $smarty->assign('Address', $address); // passing an associative array $smarty->assign(array('city' => 'Lincoln', 'state' => 'Nebraska')); // passing an array $myArray = array('no' => 10, 'label' => 'Peanuts'); $smarty->assign('foo',$myArray); // passing a row from a database (eg adodb) $sql = 'select id, name, email from contacts where contact ='.$id; $smarty->assign('contact', $db->getRow($sql)); ?>
为了在模板中访问这些内容,做法是
{* note the vars are case sensitive like php *} {$Name} {$Address} {$city} {$state} {$foo.no}, {$foo.label} {$contact.id}, {$contact.name},{$contact.email}
要访问更复杂的数组分配,请参阅 {foreach}
和 {section}
另请参见 assignByRef()
,getTemplateVars()
,clearAssign()
,append()
和 {assign}