巧用math函数在smarty模板中给变量动态赋值

来源:互联网 发布:ubuntu下chmod 编辑:程序博客网 时间:2024/06/05 20:04

今天无意中发现了Math函数,感觉很好用,稍加修改就可以达到上述效果:

    <!–{math equation=x x=0 assign=i}–>
  1. <!–{section name=smartyVar loop=10 }–>
  2. <!–{math equation=$i+1 assign=i}–>
  3. <br />
  4. <!–{$i}–>
  5. <br />
  6. <!–{/section}–>


输出效果:

    <br/>
  1. 1
  2. <br/>
  3.   
  4. <br/>
  5. 2
  6. <br/>
  7.   
  8. <br/>
  9. 3
  10. <br/>
  11.   
  12. <br/>
  13. 4
  14. <br/>
  15.   
  16. <br/>
  17. 5
  18. <br/>
  19.   
  20. <br/>
  21. 6
  22. <br/>
  23.   
  24. <br/>
  25. 7
  26. <br/>
  27.   
  28. <br/>
  29. 8
  30. <br/>
  31.   
  32. <br/>
  33. 9
  34. <br/>
  35.   
  36. <br/>
  37. 10
  38. <br/>



如果$i的初始值不是0,例如1,”math equation=x x=1 assign=i”还可以写成”math equation=1 assign=i”,省略其中的x变量.是0时不可以省,否则会出现警告信息Warning: Smarty error: math: missing equation parameter
虽然在模板中再为变量赋值不是一个好主意,但真的需要时可以按上面的方法试一下
来自:http://blog.zuobus.com/?p=53


另外一个的
math 函数演示

[pre]{* $height=4, $width=5 *}{math equation="x + y" x=$height y=$width}输出结果:9{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}{math equation="height * width / division" height=$row_height width=$row_width division=#col_div#}输出结果:100{* you can use parenthesis *}{math equation="(( x + y ) / z )" x=2 y=10 z=2}输出结果:6{* you can supply a format parameter in sprintf format *}{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}输出结果:9.44
原创粉丝点击