如果要在smarty模板中生成随机数,在php文件中生成然后赋值到模板中,是可以考虑的。(专题推荐:php随机数)
这个当然绝对是可行的,但过于复杂,如何直接在smarty模板中生成随机数,算是一个小技巧。
现在假设在smarty模板中需要生成一个125-324之间的随机数,那么可以按如下写法:
怎么样?是不是很简单,其实这里主要用到了smarty模板中的math函数,下面对Smarty math函数的作用以及用法做个简要的讲解。
math 允许模板设计者在模板中进行数学表达式运算. 均表达式中可以使用任何数值类型的变量,结果在 math 标签的位置输出. 表达式中使用的变量被当做参数传递给函数,可以是模板变量或静态值. 目前可以使用的运算符有:+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan .
关于数学函数的详细信息,请查看 PHP 文档。
如果指定了 "assign" 这个特殊属性,该函数的输出值将被赋给由 assign 指定的模板变量,而不是直接输出。
不过需要注意的是: 由于使用了 php 的 eval() 函数,math 函数的执行效率不高. 在 PHP 中做数学运算效率会更高一些,因此要尽可能在 PHP 中做数学运算,将结果赋给模板变量。
二,smarty math 函数演示
例1:
输出结果:9
例2:
输出结果:100
例3:
输出结果:6
例4:
输出结果:9.44