• smarty模板


    
    
    smarty模板的控制结构 if语句控制块常见的if语句写法:>> if语句在smarty中的应用
    # {if $name == "Fred" || $name == "Wilma"}
    {* 和上面的例子一样,"or"和"||"没有区别 *}
    # ...
    {* 如果条件成立则输出这个区块的代码 *}
    # {/if}
    {* 是条件控制的关闭标记,if必须成对出现* foreach的遍历: 主要是应用在一维数组中. {foreach}要与{/foreach}成对使用,它有四个参数,其中form和item两个是必要的。foreach可以使用的全部参数如表16-4所示。 表16-4 foreach可以使用的选项参数参 数 名描 述类 型默 认 值form待循环数组的名称,该属性决定循环的次数,必要参数数组变量无item确定当前元素的变量名称,必要参数字符串无key当前处理元素的键名,可选参数字符串无name该循环的名称,用于访问该循环,这个名是任意的,可选参数字符串无 foreach来遍历一维数组 foreach来遍历二维数组 也可以在模板中嵌套使用foreach遍历二维数组,但必须保证嵌套中的foreach名称唯一。此外,在使用foreach遍历数组时与下标无关,所以在模板中关联数组和索引数组都可以使用foreach遍历。 二维数组的遍历 1. <?php
    2. require "libs/Smarty.class.php";
    //包含Smarty类库
    3. $smarty = new Smarty();
    //创建Smarty类的对象

    4. $contact=array(
    //声明一个保存三个联系人信息的二维数组
    5. array('name'=>'高某','fax'=>'1234','email'=
    >'gao@lampbrother.net','phone'=>'4321'),
    6. array('name'=>'洛某','fax'=>'4567','email'=
    >'luo@lampbrother.net','phone'=>'7654'),
    7. array('name'=>'峰某','fax'=>'8910','email'=
    >'feng@lampbrother.net','phone'=>'0198')
    8. );

    9. $smarty->assign('contact', $contact);
    //将关联数组$contact分配到模板中使用
    10. $smarty->display('index.tpl');
    //查找模板替换并输出
    11. ?>
    在进行输出时:
    进行遍历的方案 # {foreach from=$contact item=row}
    {* 外层foreach遍历数组$contact *}
    # <tr>
    {* 输出表格的行开始标记 *}
    # {foreach from=$row item=col}
    {* 内层foreach遍历数组$row *}
    # <td>{$col}</td>
    {* 以表格形式输出数组中的每个数据 *}
    # {/foreach}
    {* 内层foreach区块结束标记 *}
    # </tr>
    {* 输出表格的行结束标记 *}
    # {/foreach}
    {* 外层foreach区域的结束标记 *}

    说明: 这里的遍历是对整个二维数组来进行遍历. foreachelse在进行遍历数组时的应用:foreach标记提供了一个扩展标记foreachelse,这个语句在from变量没有值的时候被执行,就是在数组为空时foreachelse标记可以生成某个候选结果。在模板中foreachelse标记不能独自使用,一定要与foreach一起使用。而且foreachelse不需要结束标记,它嵌入在foreach中,与elseif嵌入在if语句中很类似。 foreach为二维数组 1. {foreach key=key item=value from=$array}
    {* 使用foreach遍历数组$array中的键和值 *}
    2. {$key} => {$item} <br>
    {* 在模板中输出数组$array中元素的键和值对 *}
    3. {foreachelse}
    {* foreachelse在数组$array没有值的时候被执行*}
    4. <p>数组$array中没有任何值</p>
    {* 如果看到这条语句,说明数组中没有任何数据*}
    5. {/foreach}
    {* foreach需要成对出现,是foreach的结束标记 *} section的循环遍历section来循环遍历二维数组二维数组的遍历 说明:这是一个二维数组的定义
    $contact=array( //声明一个保存三个联系人信息的二维数组
    array('name'=>'高某','fax'=>'1234','email'=>'gao@lampbrother.net','phone'=>'4321'),
    array('name'=>'洛某','fax'=>'4567','email'=>'luo@lampbrother.net','phone'=>'7654'),
    array('name'=>'峰某','fax'=>'8910','email'=>'feng@lampbrother.net','phone'=>'0198')
    );
    $smarty->assign('contact', $contact); //将关联数组$contact分配到模板中使用

    说明:使用section来进行遍历,其中对于是关联数组的数组访问,使用"."号形式来访问
    {section name=line loop=$contact} {* 使用section遍历数组$contact *}
    <tr> {* 输出表格的行开始标记 *}
    <td>{$contact[line].name}</td> {* 输出数组第二维中下标为name的元素值 *}
    <td>{$contact[line].fax}</td> {* 输出数组第二维中下标为fax的元素值*}
    <td>{$contact[line].email}</td> {* 输出数组第二维中下标为email的元素值*}
    <td>{$contact[line].phone}</td> {* 输出数组第二维中下标为phone的元素值*}
    </tr> {* 输出表格的行结束标记 *}
    {/section} {* section区域的结束标记 *}
  • 相关阅读:
    406. 根据身高重建队列 vector 自定义排序
    5552. 到家的最少跳跃次数 BFS
    5602. 将 x 减到 0 的最小操作数 双指针
    Hadoop Container is running beyond memory limits code143
    1122. 数组的相对排序 自定义排序
    328. 奇偶链表 链表
    127. 单词接龙 bfs
    5600. 第 K 条最小指令 组合数学
    5548. 最小体力消耗路径 二分
    1024. 视频拼接 dp
  • 原文地址:https://www.cnblogs.com/heyang71212/p/3626005.html
Copyright © 2020-2023  润新知