一、foreach的使用
(1)<{}>//界定符是自定义的我定义的是"<{}>";
(2)<{foreach 属性}>//这是开始的标签
语句、、、、、、
<{/foreach }>//闭合标签
(3).关于foreach的属性:
<1>.from待循环 数组的名称
<2>. item 当前处理元素的变量名称
<3>.key 当前处理元素的键值
<4>.name该循环的名称,用于访问该循环
foreachelse 语句在 from 变量没有值的时候被执行.(放在语句中)
eg: <?php
$stu=array(array("id"=>1,"name"=>"张三","age"=>18),array("id"=>2,"name"=>"李四","age"=>19),array("id"=>3,"name"=>"王五","age"=>20));
include 'libs/Smarty.class.php';//包含Smarty类文件名称
$smarty=new Smarty();//初始化对象
$smarty->template_dir="demo/templates";//设置模版目录
$smarty->compile_dir="demo/templates_c";//设置编译目录
//***********************************
//设置定界符
//*************************
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>" ;
$smarty->assign("stu",$stu);
$smarty->display("lianxi.tpl");
?>
//这是一个php的总文件
//以下是一个lianxi.tpl的模板文件
<table bgcolor="#FF0000" bordercolor="#000066" border="1" id="1"><caption>的详细信息</caption>
<tr><th>学号</th><th>姓名:</th><th>年龄:</th></tr>
<{foreach from=$stu item=row name=a1}><tr>
<{foreach from=$row item=value name=a2}>
<td><{$value}></td>
<{/foreach}></tr>
<{/foreach}>
</table>
二、section的使用
1.<{section 属性}>
语句、、、、、
<{/section}>
2. 关于section的属性 <1>.name 该循环的名称
<2>.loop 决定循环次数的变量名称
<3>.start 循环执行的初始位置 如果该位置为负那么开始位置从数组的尾部算起。
<4>.max 设定循环最大执行次数
<5>.show 决定是否显示该循环
<6>.step 该值决定循环的步长
eg.//循环输出学生的信息
<caption>的详细信息</caption>
<tr><th>学号</th><th>姓名:</th><th>年龄:</th></tr>
<{section name=loap_a loop=$stu}>
<tr><td><{$stu[loap_a].id}></td><td><{$stu[loap_a].name}></td><td><{$stu[loap_a].age}></td>
<{/section}>
</tr>
</table>
三、foreac和section的对比
foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案).foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组.
foreach 必须和 /foreach 成对使用,且必须指定 from 和 item 属性.
name 属性可以任意指定(字母、数字和下划线的组合).
foreach 可以嵌套,但必须保证嵌套中的 foreach 名称唯一.
from 属性(通常是数组)决定循环的次数.
3.if的使用
<{if 条件1}> 语句一
<{elseuif 条件2 }> 语句二
<{else}>
<{/else}>
eg.
<{if $dq=='left'}><span style=" float:left;"><{$text}></span>
<{elseif $dq=='right'}><span style="float:right;"><{$text}></span>
<{else}><center><{$text}></center>
<{/if}>