定義常量非常的簡單
方法是:
代碼如下{$smarty.const.你定義的常量名}
定義變量如何做呢?
smarty中定義變量 .
{*下面的這一段相當於在模板內部定義一個變量UserName*}
代碼如下{assign var="UserName" value="myz"}
這裡將顯示模板內部定義的一個變量:UserName = {$UserName}
例子
代碼如下<*assign var="i" value=0*>
<*foreach from=$r_article item=row*>
<div class="scont stecont<*$i*>">
<ul>
<*foreach from=$row item=r*>
<li>
<*$r['title']*><a href="article.php?aid=<*$r['id']*>" target="_blank">【在線閱讀】</a> <a href="<*$r['attachment']*>" target="_blank">【下載】</a>
</li>
<*/foreach*>
</ul>
</div>
<*$i = $i + 1*>
<*/foreach*>
說明
1、模板中定義變量,例子如下:<{assign var="i" value=0}> (說明:i是整型,所以value=0,不需要加雙引號,否則會被判定為字符串類型)。
由於foreach沒有像for那樣的計數器,所以在這裡自定義了一個計數器,在循環中計數;也可以不在模板頁定義變量,在include該模板的頁面時,傳一個變量i進來也行。
2、關於smarty中的加運算,試了一下,smarty中不支持“++”(包括變量前++、變量後++)、“+=”的方式,所以增加1還是用“$i=$i+1“的方式。
再看一個實例子
代碼如下:
代碼如下<!–{math equation=x x=0 assign=i}–>
<!–{section name=smartyVar loop=10 }–>
<!–{math equation=$i+1 assign=i}–>
<br />
<!–{$i}–>
<br />
<!–{/section}–>
輸出效果:
<br />
1
<br />
<br />
2
<br />
<br />
3
<br />
<br />
4
<br />
<br />
5
<br />
<br />
6
<br />
<br />
7
<br />
<br />
8
<br />
<br />
9
<br />
<br />
10
<br />
注意:如果$i的初始值不是0,例如1,”math equation=x x=1 assign=i”還可以寫成”math equation=1 assign=i”,省略其中的x變量。是0時不可以省,否則會出現警告信息
Warning: Smarty error: math: missing equation parameter
雖然在模板中再為變量賦值不是一個好主意,但真的需要時可以按上面的方法試一下