【问题标题】:add var in smarty for loop在 smarty for 循环中添加 var
【发布时间】:2014-08-19 13:59:47
【问题描述】:

我有一个关于 smarty "for" 循环的问题。

我尝试在每次迭代中添加 var 值,就像在 php 中的 for 循环中一样:

for($i=0; $i<5; $i++)
{
   $foo += 5;
}

echo $foo // 25

但我需要在 smarty 中做同样的事情,我尝试在 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 之类的操作?

提前致谢!

【问题讨论】:

  • 不,内置函数是不可能的。不要试图找到一种方法来做到这一点。模板中需要的所有数据都应该在发送给 Smarty 之前生成。所以基本上把那个循环放在构建数据的php代码中并将结果添加到数据中。
  • 好吧,我会的。感谢您的回答!

标签: php for-loop smarty add


【解决方案1】:

事实上,你可以在 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 来显示内容。

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 2015-08-28
    • 2018-11-28
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多