codecamp

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

Smarty:mailto函数
Smarty:textformat函数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

I.Smarty基础

1.Smart是什么?

II.Smarty模板设计师篇

6.Smarty复合修饰器

9.Smarty配置文件

10.Smarty调试控制台

III. 程序开发者篇

11. Smarty字符集编码

12.Smarty常量

13.Smarty成员变量

14.Smarty成员方法

17.Smarty高级特性

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }