Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

math

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