Smarty 图标

你可以根据 商标声明 使用 Smarty 标志。

Smarty Template Engine Smarty Template Engine

对于赞助、广告、新公告或其他咨询,请在联系我们。

正在使用 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}