常见的就下面三种,if-elseif-else,foreach和section,都是用来控制内容输出结构,所以在今天的php教程中,提出(注明:此教程部分来自网络,部分摘自手册,提供 )
1.条件选择结构 if-elseif-else
<{if 表达式}> ... <{else if 表达式}> ... <{else}> ... <{/if}>
条件修饰词:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、>、<、<=、>=.
解释:
equal : 相等、not equal:不等于、greater than:大于、less than:小于、less than or equal:小于等于、great than or equal:大于等于、is even:是偶数、is odd:是奇数、is not even:不是偶数、is not odd:不是奇数、not:非、mod:取余、div by:被。。。除
{if $name eq "admin"} ......{elseif $name eq "Wilma"}}......{else}......{/if}
2.运用foreach循环遍历
<{ foreach 表达式}> ... <{ foreachelse}> ... <{/ foreach }>
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), array("phone" => "555-4444", "fax" => "555-3333", "php教程" => "www.phpddt.com")));*}{foreach name=outer item=contact from=$contacts} {foreach key=key item=item from=$contact} {$key}: {$item}
{/foreach}{/foreach}
3.section可实现更复杂的循环遍历
<{section loop= $varName[,start=$start,step=$setp,max=$max,$show=true]}>
name: section的名称,不用加$;
$loop: 要循环的变量,程度中要使用assign对这个变量进行操作。
$start: 开始循环的下标。默认为0;
$step: 每次循环下标的增数;
$show : boolean型。决定是否对于这块进行显示。默认为true;
<{section}>的属性;
index:循环下标。默认为0;
index_prev:当前下标的上一个值,默认为-1;
index_next:当前下标的下一个值,默认为1;
first:是否为第一下循环;
last:是否为最后一个循环;
iteration:循环个数;
rownum:当前行号,iteration的别名;
loop:最后一个循环号。Section的循环次数;
show:是否显示;
<{section loop=$News}>
新闻编号:<{$News[loop].newID}>
新闻内容:<{$News[loop].newTitle}>
<{sectionelse}>
I am sorry
<{/section}>
对于一维数组:
{section name=row loop=$list}
{$list.name}
{/section}
对于二维数组:
{section name=row loop=$list}
{$list[row].name}
{/section}
另外还可以直接单一输出:
< { $commendList.0.infoType } >
< { $commendList.1.infoType } >
对于三维数组:
<{section name=cate loop=$myarray}>
<{section name=scate loop=$myarray[cate]}>
id ------> <{$myarray[cate][scate].id}>
title --------> <{$myarray[cate][scate].title}>
url ----------> <{$myarray[cate][scate].url}>
<{/section}>
<{/section}>
关于smarty控制语句整理的php教程就是这些了!