Smarty AutoBind PHP变量到Smarty变量

时间:2009-09-05 09:40:25

标签: php smarty

在我聪明的代码中,我编写了很多代码,例如:

$smarty->assign('priorityList', $priorityList);
$smarty->assign("groupview", $groupview);
$smarty->assign('processList', key($processList));
$smarty->assign('taskList', $taskList);

看看它变得多么烦人;我对Smarty变量和PHP变量使用相同的名称,但我需要浪费时间和打字来连接两者。

我可以设置任何选项,以便智能变量自动映射到具有相同名称的PHP变量吗?

2 个答案:

答案 0 :(得分:17)

使用compact

$smarty->assign(compact('priorityList', 'groupview', 'processList', 'taskList'));

答案 1 :(得分:0)

我更喜欢只使用一个数组,在创建smarty对象时由ref聪明地分配,然后仅由ref分配数组。将变量作为数组的索引,可以使工作变得更加简单。

$smarty->assignByRef('PAGE_DATA',$page_data,false); 

然后稍后您可以使用$page_data分配变量,并将其映射到smarty模板中的“ PAGE_DATA”。

这些只是我的个人喜好,请使用适合您的喜好 并且由于您拥有assignbyref $page_data,因此您不必担心忘记分配它。

我发现的另一个巨大优势是,由于您使用的所有变量都包含在数组中,因此调试非常容易,只需打印出数组($PAGE_DATA),然后poof,所有变量都被列出< / p>

$page_data['PAGE_TITLE']    = 'Home';