Smarty学习笔记——条件判断语句、循环语句和文件引用
2016-03-30 09:24
447 查看
一、条件判断语句:
基本句式:{if $name eq "Mary"} Welcome Mary. {elseif $name eq "Jack"} Welcome Jack. {else} Welcome everybody. {/if}
其中eq是条件修饰符,在Smarty中,还有其他条件修饰符:eq(==)、neq(!=)、gt(>)、lt(<)等。
注意:条件修饰符必须用空格与变量和常量分开。
二、循环语句:
1.section:
test.php(省略了$smarty对象的实例化和Smarty文件的引用)<?php $arr = array( array( "title"=>"第一篇", "content"=>"内容", "author"=>"作者"), array( "title"=>"第一篇", "content"=>"内容", "author"=>"作者") ); $smarty->assign("arr", $arr); $smarty->display("test.tpl"); ?>test.tpl(模板文件)
{section name=article loop=$arr} {$arr["article"].title} {$arr["article"].content} {$arr["article"].author} <br /> {/section}如果当前没有数据,可以使用{sectionelse}
section中的属性:
name:(必选) 是section循环的名称只是标示循环唯一的名字没有特别意义,前面没有$符号;
loop: (必选)是在php声明中的变量名称,用来标示是循环哪一个数组(即要循环数组名)需要使用$;
start: (可选)循环执行的初始位置. 如果该值为负数,开始位置从数组的尾部算起. 例如:如果数组中有7个元素,指定start为-2,那么指向当前数组的索引为5. 非法值(超过了循环数组的下限)将被自动调整为最接近的合法值.
step: (可选)如其它语言的循环,是一个步长,如果为负数,则倒序循环;
max:(可选)循环的最大下标,如果是1则只循环1次,如果为2则循环2次;
show:(可选)默认为true即显示。如果设置了{sectionelse}。表示如果数组没有内容的时候显示这部分的内容;如果show为false则显示这部分。如果没有设置{sectionelse}则不输出该数组。
2.foreach:(可以使用PHP的语法使用)
test.tpl{foreach item=$article from=$arr} {$article.title} {$article.content} {$article.author} <br /> {foreachelse} 当前没有文章 {/foreach}
如果当前没有数据,可以使用{foreachelse}。
也可以像PHP语法一样使用foreach。
test.tpl
{foreach $arr as $article} {$article.title} {$article.content} {$article.author} <br /> {foreachelse} 当前没有文章 {/foreach}
三、文件引用:
在Smarty语法中,引入函数只有include一个。属性 | 类型 | 是否必须 | 缺省值 | 描述 |
---|---|---|---|---|
file | string | Yes | n/a | 待包含的模板文件名 |
assign | string | No | n/a | 该属性指定一个变量保存待包含模板的输出 |
[var ...] | [var type] | No | n/a | 传递给待包含模板的本地参数,只在待包含模板中有效 |
可以在属性中传递参数给待包含模板.。传递给待包含模板的参数只在待包含模板中可见。 如果传递的参数在待包含模板中有同名变量,那么该变量被传递的参数替代。
包含 $template_dir 文件夹之外的模板请使用 模板资源 说明的格式。
使用外部模板资源的include函数演示:
{* absolute filepath *} {include file="/usr/local/include/templates/header.tpl"} {* absolute filepath (same thing) *} {include file="file:/usr/local/include/templates/header.tpl"} {* windows absolute filepath (MUST use "file:" prefix) *} {include file="file:C:/www/pub/templates/header.tpl"} {* include from template resource named "db" *} {include file="db:header.tpl"}
相关文章推荐
- Ruby简明教程之循环语句介绍
- MySQL循环语句之while循环测试
- 探索PowerShell(十) 循环语句介绍
- php中Smarty模板初体验
- 解析smarty 截取字符串函数 truncate的用法介绍
- smarty巧妙处理iframe中内容页的代码
- 关于PHP模板Smarty的初级使用方法以及心得分享
- php使用Smarty的相关注意事项及访问变量的几种方式
- php smarty的预保留变量总结
- smarty缓存用法分析
- smarty 原来也不过如此~~呵呵
- Smarty Foreach 使用说明
- asp循环语句总结
- Ajax+smarty技术实现无刷新分页
- 高性能JavaScript循环语句和条件语句
- Shell脚本while、until循环语句简明教程
- shell中的循环语句、判断语句实例
- PHP详细彻底学习Smarty
- smarty 缓存控制前的页面静态化原理
- 循环语句