| Nome do atributo | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| equation | string | Sim | n/a | a equação à ser executar |
| format | string | Não | n/a | o formato do resultado (sprintf) |
| var | numérico | Sim | n/a | valor da variável da equação |
| assign | string | Não | n/a | variável de template cuja saída será atribuida |
| [var ...] | numérica | Sim | n/a | valor da variável da equação |
math permite o desenhista de template fazer equações matemáticas no template. Qualquer variável de template numérica pode ser usada nas equações, e o resultado é exibido no lugar da tag. As variáveis usadas na equação são passadas como parâmetros, que podem ser variáveis de template ou valores estáticos. +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans and tan são todos os operadores válidos. Verifique a documentação do PHP para mais informações acerca destas funções matemáticas.
Se você fornece o atributo especial "assign", a saída da função matemática será atribuído para esta variável de template ao invés de ser exibida para o template.
Nota Técnica
math é uma função de performance cara devido ao uso da função do php eval(). Fazendo a matemática no PHP é muito mais eficiente, então sempre é possível fazer os cálculos matemáticos no PHP e lançar os resultados para o template. Definitivamente evite chamadas de funções de matemáticas repetitivamente, como dentro de loops de section.
Example 8.14. math
{* $height=4, $width=5 *}
{math equation="x + y" x=$height y=$width}
MOSTRA:
9
{* $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#}
MOSTRA:
100
{* Você pode usar parenteses *}
{math equation="(( x + y ) / z )" x=2 y=10 z=2}
MOSTRA:
6
{* você pode fornecer um parâmetro de formato em sprintf *}
{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
MOSTRA:
9.44
