Smarty:math函數(shù)

2018-10-17 11:58 更新

{math}

{math}可以讓模板設(shè)計(jì)者在模板中進(jìn)行一些數(shù)學(xué)運(yùn)算。

  • 任何在模板中的數(shù)字變量都可以進(jìn)行計(jì)算,而計(jì)算的結(jié)果會(huì)替代原來的標(biāo)簽。

  • 模板變量或者靜態(tài)的值都可以作為參數(shù)進(jìn)行計(jì)算。

  • 可以允許的計(jì)算有 +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan 。 參見PHP手冊(cè),了解math 函數(shù)。

  • 如果你提供了assign 屬性, {math}函數(shù)的輸出將不會(huì)顯示,而是賦值給模板變量。

技術(shù)說明

因?yàn)槭褂昧薖HP函數(shù) eval(),所以{math}是一個(gè)比較耗費(fèi)性能的操作。 在PHP中做數(shù)學(xué)運(yùn)算會(huì)更高效,所以盡可能在PHP進(jìn)行數(shù)學(xué)運(yùn)算并且把結(jié)果assign()到模板中。 比較不建議的做法是在循環(huán)中使用{math}函數(shù),比如在 {section}循環(huán)。

參數(shù)名稱類型必選參數(shù)默認(rèn)值說明
equationstringYesn/a數(shù)學(xué)運(yùn)算式
formatstringNon/a結(jié)果的顯示格式(sprintf)
varnumericYesn/a運(yùn)算的變量值
assignstringNon/a用于賦值的變量名
[var ...]numericYesn/a運(yùn)算的變量值

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)