Smarty成员方法:assign()
Name
assign() — 赋值
说明
void assign(mixed var);
void assign(string varname,
mixed var,
bool nocache);
你可以传递键值对,或联合数组进行赋值到模板。
如设置第三个参数nocache
为true,则该变量不进行缓存。 详细参考 变量缓存
。
Note
在你传递对象到模板时,请记住对象在模板中使用的成员变量和方法均只为了显示。通过对象在模板中进行一些更复杂的应用逻辑是很容易的事情,但这样会成为较差的设计,并且难以管理。请参见Smarty网站上关于最佳实践的主题。
Example 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}