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:
{math}
autorise les designers de templates à effectuer
des opérations dans le template.
Toute valeur numérique peut être utilisée dans une opération, et le résultat sera affiché à la place des balises "equation".
Les variables utilisées dans l'opération sont passées en tant que paramètre, et peuvent être des variables de templates ou des valeurs statiques.
+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans et tan sont tous des opérateurs valides. Voir la documentation PHP pour plus d'informations sur ces fonctions mathématiques.
Si vous spécifiez l'attribut assign
, la sortie
de la fonction {math}
sera assignée à la variable
donnée plutôt que d'être directement affichée.
{math}
est une fonction coûteuse en terme de
performances, du fait qu'elle utilise la fonction PHP
eval()
.
Effectuer les calculs dans votre code PHP est beaucoup plus efficient, donc, chaque fois
que possible, effectuez vos calculs directement dans PHP et
assignez le résultat au template.
Evitez coût que coût les appels répétitifs à la fonction {math}
,
comme on pourait le faire une
une boucle {section}
.
Nom attribut | Type | Requis | Défaut | Description |
---|---|---|---|---|
equation | chaîne de caractères | Oui | n/a | L'opération à éxécuter |
format | chaîne de caractères | Non | n/a | Le format du résultat (sprintf) |
var | numeric | Oui | n/a | Les variables de l'opération |
assign | chaîne de caractères | Non | n/a | Variable de template dans laquelle la sortie sera assignée |
[var ...] | numeric | Oui | n/a | Valeurs des variables de l'opération |
Example 8.24. {math}
Exemple a :
{* $height=4, $width=5 *} {math equation="x + y" x=$height y=$width}
L'exemple ci-dessus affichera :
9
Exemple 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#}
L'exemple ci-dessus affichera :
100
Exemple c :
{* vous pouvez utiliser des parenthèses *} {math equation="(( x + y ) / z )" x=2 y=10 z=2}
L'exemple ci-dessus affichera :
6
Exemple d :
{* vous pouvez définir un format sprintf pour l'affichage *} {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
L'exemple ci-dessus affichera :
9.44