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