Smarty模板的2种循环方式及Smarty中变量定义
2010-12-27 18:56
162 查看
smarty模板的循环有2种写法:foreach、section
1、foreach方式
格式(注:此篇日志中,smarty模板的开始结束标识符被定义为:<{ }>):
<{foreach from=$arrayName key=colkey item=$colvalue name=elementName}>
参数说明:
from :必填,说明循环源
item:必填,从数组中取得的value
key:选填,从数组中取得value对应的key
name:选填,给从数组取得的“key-value“对命名
下面是foreach的例子:
$books=Array ( [0] => Array ( [isbn] => 0-672-31745-1 [author] => Thomas Down [title] => Installing Debian GNU/Linux [price] => 24.99 ) [1] => Array ( [isbn] => 0-672-31769-9 [author] => Thomas Schenk [title] => Caldera OpenLinux System Administration Unleashed [price] => 49.99 ) )
模板代码
此部分对应的打印结果:
1. Title:Installing Debian GNU/Linux
Author:Thomas Down
ISBN:0-672-31745-1
Price:24.99
2. Title:Caldera OpenLinux System Administration Unleashed
Author:Thomas Schenk
ISBN:0-672-31769-9
Price:49.99
此处需注意如下:
1、输出变量,需要加上模板的开始、结束符。在调试的过程中,由于没有加<{}>,导致 输入的是:未解析的$book['author'] ,很费了点功夫在找到问题所在。
2、模板中定义变量,例子如下:
<{assign var="i" value=0}> (说明:i是整型,所以value=0,不需要加双引号,否则会被判定为字符串类型)
由于foreach没有像for那样的计数器,所以在这里自定义了一个计数器,在循环中计数。作用:用于输出没条记录前的编号。也可以不在模板页定义变量,在include该模板的页,管理变量时,传一个变量i进来也行。
3、关于smarty中的加运算,试了一下,smarty中不支持“++”(包括变量前++、变量后++)、“+=”的方式,所以增加1还是用“$i=$i+1“的方式
2、section方式
相应模板部分的内容如下:
输入内容同foreach方式的结果一致。
1、foreach方式
格式(注:此篇日志中,smarty模板的开始结束标识符被定义为:<{ }>):
<{foreach from=$arrayName key=colkey item=$colvalue name=elementName}>
参数说明:
from :必填,说明循环源
item:必填,从数组中取得的value
key:选填,从数组中取得value对应的key
name:选填,给从数组取得的“key-value“对命名
下面是foreach的例子:
$books=Array ( [0] => Array ( [isbn] => 0-672-31745-1 [author] => Thomas Down [title] => Installing Debian GNU/Linux [price] => 24.99 ) [1] => Array ( [isbn] => 0-672-31769-9 [author] => Thomas Schenk [title] => Caldera OpenLinux System Administration Unleashed [price] => 49.99 ) )
模板代码
<{foreach from=$books key=num item="book"}> <p><strong><{$i=$i+1}><{$i}>. Title:<{$book['title']}></strong><br /> Author:<{$book['author']}><br /> ISBN:<{$book['isbn']}><br /> Price:<{$book['price']}><br /> <{/foreach}>
此部分对应的打印结果:
1. Title:Installing Debian GNU/Linux
Author:Thomas Down
ISBN:0-672-31745-1
Price:24.99
2. Title:Caldera OpenLinux System Administration Unleashed
Author:Thomas Schenk
ISBN:0-672-31769-9
Price:49.99
此处需注意如下:
1、输出变量,需要加上模板的开始、结束符。在调试的过程中,由于没有加<{}>,导致 输入的是:未解析的$book['author'] ,很费了点功夫在找到问题所在。
2、模板中定义变量,例子如下:
<{assign var="i" value=0}> (说明:i是整型,所以value=0,不需要加双引号,否则会被判定为字符串类型)
由于foreach没有像for那样的计数器,所以在这里自定义了一个计数器,在循环中计数。作用:用于输出没条记录前的编号。也可以不在模板页定义变量,在include该模板的页,管理变量时,传一个变量i进来也行。
3、关于smarty中的加运算,试了一下,smarty中不支持“++”(包括变量前++、变量后++)、“+=”的方式,所以增加1还是用“$i=$i+1“的方式
2、section方式
相应模板部分的内容如下:
<{assign var="i" value=0}> <{section name=book loop=$books}> <p><strong><{$i=$i+1}><{$i}>. Title:<{$books[book].title}></strong><br /> Author:<{$books[book].author}><br /> ISBN:<{$books[book].isbn}><br /> Price:<{$books[book].price}><br /> <{/section}>
输入内容同foreach方式的结果一致。
相关文章推荐
- smarty模板中传值给php变量 从而实现不同的循环值
- php学习笔记(三十五)smarty模板中使用变量的三种方式
- 在smarty模板中使用get,post,request,cookies,session,server变量的快捷方式
- PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
- discuzx模板制作中必须知道的变量、循环、判断、文件嵌套
- js 函数定义的2种方式
- Smarty模板技术/引擎——变量操作(1)
- jquery freemarker模板设置变量每次循环加1
- JavaScript总体的介绍【JavaScript介绍、定义函数方式、对象类型、变量类型】
- smarty模板操作变量
- postpresql 打印变量+自定义错误并返回+for循环语法模板
- py定义变量-循环-条件判断
- smarty中三种变量的访问方式
- smarty模板中使用get、post、request、cookies、session变量的方法
- Smarty模板中变量修饰格式: {$var|方法1:参数1:参数2…|方法2…}
- 在Express的页面模板中的变量的定义与使用总结
- C 语言的循环控制变量定义和初始化问题
- 模板中定义变量
- smarty模板 将php数组传递给js变量
- Smarty模板变量调节器用法分析