友情链接: 伦理电影手机在线观看 伦理电影在线观看 葡京国际 澳门葡京国际 日本三级片 韩国三级片 福建十三水下载 十三水APP发牌规律 官网十三水游戏 十三水规则 十三水推算技巧 福州十三水下载 打十三水技巧 手机版十三水官网 微信十三水赌博群 十三水棋牌赢钱 十三水棋牌游戏下载 十三水游戏手机官网 十三水摆牌技巧 十三水微信红包群 十三水的微信群 手机十三水下载 大玩家福建十三水 大玩家福建十三水官网 莆田游戏十三水 十三水游戏平台 同城游戏十三水 微信赌博十三水 无押金十三水微信群 网络十三水发牌规律 微信十三水游戏 十三水游戏下载 十三水玩法 风赢十三水官方网站 单机十三水游戏下载 福建十三水怎么玩 福州十三水微信群赌钱 风赢十三水技巧 边锋十三水下载 福建大玩家十三水官网 十三水游戏规则 十三水棋牌在线游戏 十三水群 大玩家十三水官方网站 开心十三张手机版 开心十三水下载 众娱平台十三水 微信十三水群 微信赌博十三张 永康十三水官网 永康十三水规则 闲来十三水官网 正规的现金棋牌游戏 正规的现金十三水 最火十三水平台 下载边锋游戏大厅 闲来玩十三水官方网站 网络十三水赢钱技巧 永康十三水安卓版 十三水技巧规律 十三水棋牌赢钱玩法 十三水棋牌怎么赢钱 棋牌合作平台 十三水代理官方网站 十三水在线玩 十三水游戏群 十三水烂牌技巧 十三张棋牌下载 全民棋牌官网下载 开心十三张官方网站 天天福建十三水代理
Warning: Cannot modify header information - headers already sent by (output started at D:\localuser\ftp502112\Web\index.php:69) in D:\localuser\ftp502112\Web\init.php on line 9  Smarty模版引擎页面流程控制之顺序、选择、循环模式 - 慕轲博客-建立自己的个人自媒体博客

心情碎语:等雨停的时候往往雨不会停,等人来的时候往往人不会来。

您的位置:慕轲博客 >MVC基础专题> Smarty模版引擎页面流程控制之顺序、选择、循环模式

Smarty模版引擎页面流程控制之顺序、选择、循环模式

小慕上篇介绍了Smarty模板安装搭建的简单使用方法,并且通过这种使用方法了解了smarty的运行原理!那么我们来讲下smarty语法之流程控制,简称控制流,嘻嘻,小慕瞎说的不要太在意,那下面开说了。

1、顺序流程模式其实这个流程没什么好介绍的了,就是至上而下没有什么需要说道的。这里说一下用到的一些变量知识。

上篇说道,变量是通过$smarty->assign('变量名','变量值');传递到Smarty模版里使用的,有人就会问了如果没有在后台php里定义某个变量而在模版里需要使用一些变量,怎么在Smarty模版页面定义变量呢?这里小慕要介绍个Smarty模版里定义变量方法:

{?assign var="变量名" value=变量值?} //注意这里使用的"{?"和"?}"是上篇文章里定义的格式,Smarty默认的是“{”和“}”,但是小慕
//为了与JS等区别做的修改,当然你也可以定义自己的格式,这里小慕按照习惯就这样用了,下同。
{?assign var="temp1" value=1?} //注意value赋值时,不加引号就为数字,否则就作为字符串处理,val作为变量名必须要用字符串。
{?assign var="temp2" value="慕轲博客"?} //此处value即为字符串。

上边说的是赋值一个变量,怎么使用呢?使用起来和php传递过来的变量是一样的。

{?$temp1?}
{?assign var="temp1" value=$temp1+1?}
{?$temp1?}
{?$temp2?}

2、选择流程模式所谓选折就离不开判断,说道判断大家首先想到的是if-else。那么Smarty模版怎么进行变量的判断呢?if-else怎么使用呢?好了废话不多说,向下看:

PHP页面代码: 

$temp=1; 
$smarty->assign("temp",$temp); 

模板前台:

{?if $temp gt 0?}
临时变量>0 
{?else?}
临时变量<=0 
{?/if?}

运行,查看输出结果! 

其中这里用到了gt,他是什么意思呢?很多人一定看出来了,他就是大于的意思,也就是“>”这个。这些代替还有很多,下边小慕列举一些出来。

eq 判断是否相等  == 
neq、ne 不相等  != 
lt 小于         < 
lte 小于等于    <= 
gt 大于         > 
gte 大于等于    >= 
is div by 被某数整除   % 
is even 为偶数         %2==0 
is odd 为奇数          %2!=0 

注意:作为条件的表达式不能加小括号以空格代替,elseif中间不能有空格!!!例如: 

{?if 条件?}

输出内容1

{?elseif 条件?}

输出内容2

{?else?}

{?/if?}

3、循环流程模式。哈哈说道循环,大家会想到很多格式,比如for循环,while结构循环等等。而在smarty模板中循环有2种section、foreach,主要是针对数组的取值

1)section   section无法用于引用数组,但可以实现以下功能,并且可以实现普通for循环 

PHP页面:

$arr1=array(6,2,9); 

前台页面:

{?section name=k loop=$arr1?}
值:{?$arr1[k]?}   //注意:索引k在使用的时候没有$,并且无法单独使用
{?sectionelse?}
<font color="red" style="font-weight:bold;">数组为空!</font> //数组为空使用sectionelse可以进行处理
{?/section?}
//利用section实现普通for循环 
{?section name=i loop=$arr1?}
索引:{?$smarty.section.i.index?}循环{?$smarty.section.i.index+1?}次<br /> 
{?/section?}

2)foreach循环 

PHP页面:

$arr2=array("a"=>1,"b"=>2,"c"=>3); 

前台页面: 

{?foreach from=$arr2 item=v key=k?}
键:{?$k?}值:{?$v?}  
{?foreachelse?}
<font color="red" style="font-weight:bold;">引用数组为空!</font> //数组为空使用sectionelse可以进行处理
{?/foreach?}

4、利用foreach循环读取数据库记录并显示。

PHP代码 

$result=$mysql->execute("select * from datatable"); 
while($row=mysql_fetch_array($result)){ 
$arr1[]=$row; 
} 
$smarty->assign("arr1",$arr1); 

前台读取,“.”后面是字段名 

{?foreach from=$arr1 item=v?}
{?$v.Sid?}
{?/foreach?}

---

转载请注明本文标题和链接:《Smarty模版引擎页面流程控制之顺序、选择、循环模式

分享到:

发表评论

48 + 73 =
路人甲 表情
Ctrl+Enter快速提交