smartyの値の中の演算子の謎

たまにsmartyのテンプレートでちょっとだけ複雑な事やろうとした時とかに、毎回ハマってしまうお話し。

値に演算子(計算式)を入れると、計算されずに文字列で帰ってくることがある。
マニュアルにもらしい解説がないので毎回毎回悩まされるので、分かり易くまとめておく。

{assign var="no" value="`124+$item.no`"}

↑ダメな例

{assign var="no" value="`$item.no+124`"}

↑OKな例

そう、順番です。valueの値に演算子(変数と数値の)を挿入する時は、変数が先頭にこないといけないのです。

たったこれだけのことを毎回忘れてしまい、マニュアルを読みあさったりしてしまうのは、この挙動が僕には理解できない仕様だからなのかな。

他にも似たような謎の仕様に悩まされた事があるが、忘れた。思い出したら、また書こうと思う。