Smarty - the compiling PHP template engine Smarty - php 模板编译引擎 |
||
---|---|---|
Prev 来源:PHP中文社区 | Chapter 8. Custom Functions[第八章.自定义函数] | Next |
math
Attribute Name | Type | Required | Default | Description |
---|---|---|---|---|
equation | string | Yes | n/a | the equation to execute |
format | string | No | n/a | the format of the result (sprintf) |
var | numeric | Yes | n/a | equation variable value |
assign | string | No | n/a | template variable the output will be assigned to |
[var ...] | numeric | Yes | n/a | equation variable value |
属性 | 类型 | 是否必须 | 缺省值 | 描述 |
---|---|---|---|---|
equation | string | Yes | n/a | 待执行的表达式 |
format | string | No | n/a | 结果的格式(遵从sprintf函数) |
var | numeric | Yes | n/a | 表达式变量值 |
assign | string | No | n/a | 输出值将被赋给模板变量的名称 |
[var ...] | numeric | Yes | n/a | 表达式变量值 |
math allows the template designer to do math equations in the template. Any numeric template variables may be used in the equations, and the result is printed in place of the tag. The variables used in the equation are passed as parameters, which can be template variables or static values. +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans and tan are all valid operators. Check the PHP documentation for further information on these math functions.
math 允许模板设计者在模板中进行数学表达式运算. 均表达式中可以使用任何数值类型的变量,结果在 math 标签的位置输出. 表达式中使用的变量被当做参数传递给函数,可以是模板变量或静态值. 目前可以使用的运算符有:+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan .关于数学函数的详细信息,请查看 PHP 文档.
If you supply the special "assign" attribute, the output of the math function will be assigned to this template variable instead of being output to the template.
如果指定了 "assign" 这个特殊属性,该函数的输出值将被赋给由 assign 指定的模板变量,而不是直接输出.
Technical Note: math is an expensive function in performance due to its use of the php eval() function. Doing the math in PHP is much more efficient, so whenever possible do the math calculations in PHP and assign the results to the template. Definately avoid repetitive math function calls, like within section loops.
技术要点: 由于使用了 php 的 eval() 函数,math 函数的执行效率不高. 在 PHP 中做数学运算效率会更高一些,因此要尽可能在 PHP 中做数学运算,将结果赋给模板变量. 类似在 section 循环,应明确避免反复调用 math 函数.