assign()
向模板分配变量/对象
描述
void
分配
混合
var
void
分配
字符串
varname
混合
var
布尔
nocache
您可以明确通过 name/value 对或包含 name/value 对的关联数组。
如果您传递了 TRUE 的可选的第三个 nocache 参数,则该变量将被分配为无缓存变量。具体内容请参见 缓存变量
。
注意
向模板分配/注册对象时,请确保从模板访问的所有属性和方法仅用于演示目的。通过对象注入应用程序逻辑非常容易,而且会导致难以管理的糟糕设计。请参阅 Smarty 网站的最佳实践部分。
<?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}