{math}

{math} allows the template designer to do math equations in the template.

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 the script and assign() the results to the template. Definitely avoid repetitive {math} function calls, eg within {section} loops.

Attribute NameTypeRequiredDefaultDescription
equationstringYesn/aThe equation to execute
formatstringNon/aThe format of the result (sprintf)
varnumericYesn/aEquation variable value
assignstringNon/aTemplate variable the output will be assigned to
[var ...]numericYesn/aEquation variable value

Example 8-24. {math}

Example a:

{* $height=4, $width=5 *}

   {math equation="x + y" x=$height y=$width}

The above example will output:

9

Example 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#}

The above example will output:

100

Example c:

{* you can use parenthesis *}

   {math equation="(( x + y ) / z )" x=2 y=10 z=2}

The above example will output:

6

Example d:

{* you can supply a format parameter in sprintf format *}

   {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}

The above example will output:

9.44