I'll be NET】創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)

トップページ > PHP > smartyでいろいろ計算をする(math利用法)

smartyでいろいろ計算をする(math利用法)

  • 投稿日:2015/11/18 |最終更新:2015/11/21
  • PHP
  • smarty

smartyはPHPのテンプレートエンジンです。
smartyを使っていろんな計算をする方法を紹介します。

単純な足し算引き算掛け算割り算

{* $foo='2' $bar='3' *}

上記のような数字が変数に入っている時、下記のような計算を行うことができます。
※()を使った複雑な計算をする場合は、{math}を使わなければなりません(後に説明します)。

加算

「+」を利用します。左の値と演算子と右の値の間にスペースは入れません。

サンプル

{$foo+$bar}

結果

5

減算

「-」を利用します。左の値と演算子と右の値の間にスペースは入れません。

サンプル

{$foo-$bar}

結果

-1

乗算

「*」を利用します。左の値と演算子と右の値の間にスペースは入れません。

サンプル

{$foo*5}

結果

10

除算

「/」を利用します。左の値と演算子と右の値の間にスペースは入れません。

サンプル

{$foo/2}

結果

1

mathを使った複雑な計算

{math}を使うと、()を使った複雑な計算をすることができるようになります。

{math equation='数式'}

上記のように記述します。
結果を変数に格納したい場合は、

{math equation='数式' assign='結果を格納する変数'}

のように記述します。
assignで結果を変数に格納する以外にも、formatで結果を整形したり、変数や()を利用した複雑な計算を行うことができます。

数字を使ったmath

equationには数式を記入します。
数式には数字や演算子(+,-,*,/)を利用することができます。

サンプル

{math equation='1+2' assign='hoge'}
{$hoge}

結果

3

また、数式には()を利用することができます。

サンプル

{math equation='(1+2)*3' assign='hoge'}
{$hoge}

結果

9

formatを指定すると、sprintf 形式のフォーマット文字列を指定できます。
下記の例では、小数点第二位まで求めています。

サンプル

{math equation='(4+6)/3' assign='hoge' format='%.2f'}
{$hoge}

結果

3.33

変数を使ったmath

equation内で変数を利用できます。
equation内で使用した変数は、math内で指定してください。

サンプル

{math equation='x+y' x='2' y='3' assign='hoge'}
{$hoge}

結果

5

equation内で利用した変数に既に設定されている変数を割り当てることができます。
上の例では、xに$xを、yに$yを割り当てています。

サンプル

{assign var='x' value='2'}{* $x = 2 *}
{assign var='y' value='3'}{* $y = 3 *}
{math equation='(x+y)*x' x=$x y=$y assign='hoge'}
{$hoge}

結果

10

参考URL

 

この記事が気に入ったらシェアしてください。

関連記事

Smartyで配列の中身をデバッグする方法

smartyのarray_key_existsで配列の中のキーの有無を調べる方法

smartyのin_arrayで配列の中の値の有無を調べる方法

smartyのassignでテンプレート内変数を定義する方法

smartyのforeachでループ回数を取得する方法

smartyのforeachで最初と最後のループの時になにかする方法

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)

Profile

yuricolo@I'll be NET

東京都を拠点としたSOHO(フリーランス)による創作サイト向けWEB制作サービスを行っています。 お仕事とか創作活動とかでメモっておきたいこととかを掲載しています。