> 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

 

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

関連記事

PHPで空白・改行コードを削除する方法

PHPで空白・改行コードを削除する方法

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

カラーミーでカテゴリー商品一覧画面・グループ商品一覧画面で表示を変える方法

カラーミーでカテゴリー商品一覧画面・グループ商品一覧画面で表示を変える方法

カラーミーで共通のパーツを複数の画面で呼び出す方法

カラーミーで共通のパーツを複数の画面で呼び出す方法

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

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

Comment Form

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