我有一个关于聪明的“for”循环的问题。
我尝试在每次迭代中添加var值,就像在php中的for循环一样:
for($i=0; $i<5; $i++)
{
$foo += 5;
}
echo $foo // 25
但是我需要在smarty中做同样的事情,我试图在这样的for循环中添加值:
{for $i=0 to {$sale_info[record].id_payment_type|@count}-1}
{if {$sale_info[record].id_payment_type[{$i}]} eq "1" }
{math equation="(x + x)" x={$sale_info[record].prices[{$i}]}}
{/if}
{/for}
但我没有得到结果。在smarty中可以做x + = 20这样的事情吗?
提前致谢!
答案 0 :(得分:0)
事实上,你可以在Smarty做这样的事情。但是Smarty中没有for
循环。
有一个简单的例子:
{assign var="y" value=0}
{section name=sec start=0 loop=5}
{math equation="(x + x + y)" x =$smarty.section.sec.iteration y=$y assign="y"}
{$y}<br />
{/section}
进行计算并将其分配到$y
变量。
此输出将为:
2 // 1 + 1 + 0
6 // 2 + 2 + 2
12 // 3 + 3 + 6
20 // 4 + 4 + 12
30 // 5 + 5 + 20
但是,如果可能合理,我仍然建议您在PHP中进行复杂的计算,并仅使用Smarty来显示内容。