math

属性名必須デフォルト概要
equationstringYesn/a実行する方程式
formatstringNon/a結果の表示フォーマット (sprintf)
varnumericYesn/a方程式の変数に渡す値
assignstringNon/a出力を割り当てるテンプレート変数
[var ...]numericYesn/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