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:
Attribut Name | Typ | Erforderlich | Standardwert | Beschreibung |
---|---|---|---|---|
equation | string | Ja | n/a | Der auszuführende Vergleich. |
format | string | Nein | n/a | Format der Ausgabe. (sprintf) |
var | numeric | Ja | n/a | Wert der Vergleichsvariable. |
assign | string | Nein | n/a | Template-Variable welcher die Ausgabe zugewiesen werden soll. |
[var ...] | numeric | Yes | n/a | Zusätzliche Werte. |
'math' ermöglicht es dem Designer, mathematische Gleichungen durchzuführen. Alle numerischen Template-Variablen können dazu verwendet werden und die Ausgabe wird an die Stelle des Tags geschrieben. Die Variablen werden der Funktion als Parameter übergeben, dabei kann es sich um statische oder um Template-Variablen handeln. Erlaubte Operatoren umfassen: +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans und tan. Konsultieren Sie die PHP-Dokumentation für zusätzliche Informationen zu dieser Funktion.
Falls Sie die spezielle 'assign' Variable übergeben, wird die Ausgabe der 'math'-Funktion der Template-Variablen mit dem selben Namen zugewiesen anstatt ausgegeben zu werden.
Die 'math'-Funktion ist wegen ihres Gebrauchs der 'eval()'-Funktion äusserst Ressourcen intensiv. Mathematik direkt im PHP-Skript zu verwenden ist wesentlich performanter. Sie sollten daher - wann immer möglich - auf die Verwendung verzichten. Stellen Sie jedoch auf jeden Fall sicher, dass Sie keine 'math'-Tags in 'sections' oder anderen 'loop'-Konstrukten verwenden.
Example 8.19. math (Mathematik)
{* $height=4, $width=5 *} {math equation="x + y" x=$height y=$width} AUSGABE: 9 {* $row_height = 10, $row_width = 20, #col_div# = 2, aus Template zugewiesen *} {math equation="height * width / division" height=$row_height width=$row_width division=#col_div#} AUSGABE: 100 {* Sie können auch Klammern verwenden *} {math equation="(( x + y ) / z )" x=2 y=10 z=2} AUSGABE: 6 {* Sie können als Ausgabeformat alle von sprintf unterstötzen Definitionen verwenden *} {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"} AUSGABE: 9.44