{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ドキュメントを参照して下さい。
方程式にはニューメリックなテンプレート変数が使われ、結果はタグの位置に出力されます。
方程式の変数には、テンプレート変数又は静的な値がパラメータによって渡されます。
+, -, /, *, 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