Smarty:math函数

{math}

{math}可以让模板设计者在模板中进行一些数学运算。

  • 任何在模板中的数字变量都可以进行计算,而计算的结果会替代原来的标签。

  • 模板变量或者静态的值都可以作为参数进行计算。

  • 可以允许的计算有 +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan 。 参见PHP手册,了解math 函数。

  • 如果你提供了assign 属性, {math}函数的输出将不会显示,而是赋值给模板变量。

技术说明

因为使用了PHP函数 eval(),所以{math}是一个比较耗费性能的操作。 在PHP中做数学运算会更高效,所以尽可能在PHP进行数学运算并且把结果assign()到模板中。 比较不建议的做法是在循环中使用{math}函数,比如在 {section}循环。

参数名称类型必选参数默认值说明
equationstringYesn/a数学运算式
formatstringNon/a结果的显示格式(sprintf)
varnumericYesn/a运算的变量值
assignstringNon/a用于赋值的变量名
[var ...]numericYesn/a运算的变量值

Example 8.21. {math}

例子 a:

   {* $height=4, $width=5 *}

   {math equation="x + y" x=$height y=$width}

输出:

   9

例子 b:

   {* $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

例子 c:

   {* you can use parenthesis *}

   {math equation="(( x + y ) / z )" x=2 y=10 z=2}

输出:

   6

例子 d:

   {* you can supply a format parameter in sprintf format *}

   {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}

输出:

   9.44

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部