Smarty マニュアル

前のページ

第 8章カスタム関数

次のページ

math

属性名型必須デフォルト概要

equation

string

Yes

n/a

実行する方程式

format

string

No

n/a

結果の表示フォーマット (sprintf)

var

numeric

Yes

n/a

方程式の変数に渡す値

assign

string

No

n/a

出力を割り当てるテンプレート変数

[var ...]

numeric

Yes

n/a

方程式の変数の値

テンプレート内で数学の方程式を実行する事ができます。方程式にはニューメリックなテンプレート変数が使われ、結果はタグの位置に出力されます。方程式の変数には、テンプレート変数又は静的な値がパラメータによって渡されます。+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans, tan が有効なオペレータです。これらの詳細についてはphpドキュメントを参照して下さい。

assign属性が指定された場合は、mathの出力はテンプレート変数に割り当てられます。

テクニカルノート: mathはphpのeval()関数を使用するのでパフォーマンス的にコストの高い関数です。php内でmath関数を実行する事は、テンプレートで行うよりもはるかに効率的です。mathの計算がphpで可能な場合はphpで行い、結果をテンプレートに割り当てるようにして下さい。セクションループ内のように反復でmath関数を呼び出す事は避けて下さい。

例 8-14. math

{* $height=4, $width=5 *}{math equation="x + y" x=$height y=$width}出力:9{* $row_height = 10, $row_width = 20, #col_div# = 2 がテンプレート変数に割り当てられているとする *}{math equation="height * width / division" height=$row_height width=$row_width division=#col_div#}出力:100{* 括弧が使える *}{math equation="(( x + y ) / z )" x=2 y=10 z=2}出力:6{* sprintfフォーマットに従ったformatパラメータを渡す事ができる *}{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}出力:9.44

ページ上段