如何在smarty模板中定义变量与常量
如何在smarty模板中定义变量与常量
定义常量非常的简单方法是:
代码如下 | |
{$smarty.const.你定义的常量名} |
定义变量如何做呢?
smarty中定义变量 .
{*下面的这一段相当于在模板内部定义一个变量UserName*}
代码如下 | |
{assign var="UserName" value="myz"} |
这里将显示模板内部定义的一个变量:UserName = {$UserName}
例子
代码如下 | |
<*assign var="i" value=0*> <*foreach from=$r_article item=row*> <div > <ul> <*foreach from=$row item=r*> <li> <*$r['title']*><a href="article.php?aid']*>" 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
虽然在模板中再为变量赋值不是一个好主意,但真的需要时可以按上面的方法试一下