Smarty 是什么?
为什么使用它?
使用案例和工作流程
语法比较
模板继承
最佳实践
速成课程
{math}
允许模板设计者在模板中进行数学方程。
任何数字模板变量都可以用于方程式中,结果将打印在标签的位置。
方程式中使用的变量作为参数传递,可以是模板变量或静态值。
+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan 都是有效运算符。查看 PHP 文档以获取有关这些数学函数的更多信息。
如果您提供了assign
属性,{math}
函数的输出将分配给此模板变量,而不是输出到模板。
{math}
由于其使用 php eval()
函数而是一个高开销函数。在 PHP 中进行数学运算要有效得多,因此,如果可能,在脚本中进行数学运算,然后将结果 assign()
到模板。绝对避免重复{math}
函数调用,例如在 {section}
循环中。
属性名称 | 类型 | 必需 | 默认值 | 说明 |
---|---|---|---|---|
方程式 | 字符串 | 是 | n/a | 要执行的方程式 |
格式 | 字符串 | 否 | n/a | 结果格式(sprintf) |
var | 数字 | 是 | n/a | 方程式变量值 |
assign | 字符串 | 否 | n/a | 输出将分配到的模板变量 |
[var ...] | 数字 | 是 | n/a | 方程式变量值 |
示例 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