Smarty 图标

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

Smarty Template Engine Smarty Template Engine

如需赞助、广告、新闻或其他询问,请通过以下方式联系我们

使用 Smarty 的网站

广告

变量作用域

你可以选择将变量分配给主 Smarty 对象、使用 createData() 创建的数据对象以及使用 createTemplate() 创建的模板对象的作用域。这些对象可以链接。模板会看到其自身对象的所有变量以及在其父对象链中分配给的对象的所有变量。

默认情况下,由 $smarty->display(...)$smarty->fetch(...) 调用渲染的模板会自动链接到 Smarty 对象变量作用域。

通过将变量分配给各个数据或模板对象,你可以完全控制模板可以看到哪些变量。

示例 4.6 变量作用域示例


// assign variable to Smarty object scope
$smarty->assign('foo','smarty');

// assign variables to data object scope
$data = $smarty->createData();
$data->assign('foo','data');
$data->assign('bar','bar-data');

// assign variables to other data object scope
$data2 = $smarty->createData($data);
$data2->assign('bar','bar-data2');

// assign variable to template object scope
$tpl = $smarty->createTemplate('index.tpl');
$tpl->assign('bar','bar-template');

// assign variable to template object scope with link to Smarty object
$tpl2 = $smarty->createTemplate('index.tpl',$smarty);
$tpl2->assign('bar','bar-template2');

// This display() does see $foo='smarty' from the $smarty object
$smarty->display('index.tpl');

// This display() does see $foo='data' and $bar='bar-data' from the data object $data
$smarty->display('index.tpl',$data);

// This display() does see $foo='data' from the data object $data 
// and $bar='bar-data2' from the data object $data2
$smarty->display('index.tpl',$data2);

// This display() does see $bar='bar-template' from the template object $tpl
$tpl->display();  // or $smarty->display($tpl);

// This display() does see $bar='bar-template2' from the template object $tpl2
// and $foo='smarty' form the Smarty object $foo
$tpl2->display();  // or $smarty->display($tpl2);

    


另请参阅 assign()createData()createTemplate()