我想知道如何实现动态增量变量, 这是我的php
<?php
$sections =5;
for($g=1; $g<=$sections; $g++){
$smarty->assign(array(
'products-'.$g => $dbvariable,
'add_display-'.$g => $othervar ));
}
$smarty->assign('number', $sections);
?>
这是我聪明的模板
{assign var=cnt value=1}
{while $cnt <= $number}
{foreach from=$products-`.$cnt` item=prod name=mysection}
<div class="section-{$cnt}">
// my output here
<h3>{$products-`$cnt`.name}</h3>
<img src="{$add_display-`$cnt`.src}">
</div>
{/foreach}
{assign var=cnt value=$cnt+1}
{/while}
任何人都可以指导我如何在smarty上实现增量动态变量吗?
好像我在这里迷失了答案 0 :(得分:1)
我不确定你是否有理由开始采用这种方法,但这比答案更容易理解为答案。
为什么不只使用数组而不是动态变量名?这应该等同于你想要的,我想:
<?php
$sections =5;
$products = array();
$add_display = array();
for($g=1; $g<=$sections; $g++){
$products[$g] = $dbvariable;
$add_display[$g] = $othervar;
}
$smarty->assign('products', $products);
$smarty->assign('add_display', $add_display);
$smarty->assign('number', $sections);
然后(这可能会进一步简化,但我已经尽可能地保留了它,所以你可以看到我改变了什么):
{assign var=cnt value=1}
{while $cnt <= $number}
{foreach from=$products[$cnt] item=prod name=mysection}
<div class="section-{$cnt}">
// my output here
<h3>{$prod.name}</h3>
<img src="{$add_display[$cnt].src}">
</div>
{/foreach}
{assign var=cnt value=$cnt+1}
{/while}
顺便说一句,<h3>
看起来不太正确,所以我猜到它应该是什么。