smarty @Wiki

{math}

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

{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

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

記事メニュー
目安箱バナー