跳至内容

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}

有关访问更复杂的数组分配,请参见 {foreach}{section}

另请参阅 getTemplateVars()clearAssign()append(){assign}