What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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.
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