一 代码
index.php
<?php include("../config.php"); $obj = array( array("id" => 1, "bigclass" => "计算机图书","smallclass" => array(array("s_id" => 1, "s_type" => "PHP"))), array("id" => 2, "bigclass" => "历史传记","smallclass" => array(array("s_id" => 2, "s_type" => "中国历史"), array("s_id" => 3, "s_type" => "世界历史"))), array("id" => 3, "bigclass" => "畅销小说","smallclass" => array(array("s_id" => 4, "s_type" => "网络小说"),array("s_id" => 5, "s_type" => "科幻小说")))); $smarty->assign('title','section循环控制'); $smarty->assign("obj", $obj); $smarty->display("8/index.tpl"); ?>
index.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>{$title}</title> <link rel="stylesheet" href="../css/style.css" /> </head> <body> <table width="100" border="0" align="left" cellpadding="0" cellspacing="0"> {section name=sec1 loop=$obj} <tr> <td colspan="2">{$obj[sec1].bigclass}</td> </tr> {section name=sec2 loop=$obj[sec1].smallclass} <tr> <td width="25"> </td> <td width="75">{$obj[sec1].smallclass[sec2].s_type}</td> </tr> {/section} {/section} </table> </body> </html>
二 运行结果
相关推荐
1. 条件控制:在`section`内可以使用`if`、`else`等条件语句,根据当前循环的状态进行不同的输出。 2. `section`嵌套:可以将一个`section`嵌套在另一个`section`中,实现多层循环。 3. `section`的修改:在模板中,...
使用foreach语句循环输出数组。 {% foreach key=key item=item from=$infobook %} {% $key %} => {% $item %} {% /foreach %} include {% include file='08/table.tpl' name='编程词典网' value='htt://...
例如,`{$variable}`用于输出变量,`{foreach $array as $item}`用于循环遍历数组。 2. **变量**:Smarty中的变量可以来自PHP脚本,通过`assign`函数赋值给模板,如`$smarty->assign('name', 'John');`。在模板中,...
本文详细介绍了Smarty中foreach循环和section循环的使用方法和技巧。 首先,我们来看看foreach循环。foreach循环是一种通用的循环结构,用于遍历数组或对象,并为数组中的每个元素执行一组语句。在Smarty模板中,...
6. **函数和块**:SMARTY的插件系统允许开发自定义函数或块,比如`{section}`用于处理数组或循环,`{assign}`用于在模板内部赋值,`{include}`用于包含其他模板。 7. **安全特性**:Smarty 2.6.24版可能会包含针对...
- {$smarty.foreach.loop.index}:表示当前循环数组元素的下标,从0开始计算。 - {$smarty.foreach.loop.iteration}:表示当前循环的次数,从1开始计算。 - {$smarty.foreach.loop.first}:如果当前是循环的第一次...
- **section, sectionelse**: 循环数组。 - **strip**: 去除字符串开头和结尾的空白字符及换行符。 #### 五、自定义函数 - **assign**: 为模板变量赋值。 - **counter**: 计数器函数。 - **cycle**: 轮流使用一组...
1. **foreach循环**:在Smarty中,`foreach`语句用于遍历数组或对象集合,语法如下: ``` {foreach from=$array item=item name=loop} {$item} {/foreach} ``` 其中`from`属性指定了循环的数据源,`item`属性...
它提供了一种简单的方式来定义和渲染动态内容,使得开发者可以在模板文件中插入变量、控制结构(如条件语句和循环)以及函数调用,而这些都会在运行时被PHP解释并生成HTML或其他类型的目标输出。 1. **Smarty的基本...
- `{section}` 和 `{foreach}`:用于循环遍历数组或集合。 - `{if}`,`{elseif}` 和 `{else}`:条件语句。 - `{include}` 和 `{extends}`:用于包含其他模板或继承父模板。 4. **Smarty在实际项目中的应用**: ...
对于`$row`数组,可以使用`{section}`或`{foreach}`循环来显示表头,如: ```html {foreach from=$row item=label} <th>{$label} {/foreach} ``` 对于`$newstext`二维数组,同样使用`{foreach}`来遍历并显示...
2. **循环结构**:`{foreach}`标签用于遍历数组或集合,非常适合在列表中展示数据。 3. **条件语句**:`{if}`,`{elseif}`,`{else}`用于根据条件展示不同内容。 4. **函数和插件**:Smarty提供了许多内置函数,如...
- **控制结构**:支持条件语句(`{if}`、`{elseif}`、`{else}`)、循环(`{foreach}`、`{section}`)等,用于动态生成内容。 4. **模板继承** Smarty的模板继承机制允许创建一个基础模板,子模板可以通过`{...
例如,你可以使用`{if}`条件语句控制区块的显示,用`{foreach}`遍历数组,用`{section}`进行循环操作。 Smarty的优势: - 可复用性:由于模板和代码分离,你可以轻松更换模板,而不影响程序逻辑。 - 性能:Smarty...
4. **条件判断**:Smarty支持`{if}`、`{elseif}`和`{else}`语句进行条件判断,可以使用诸如`eq`、`neq`、`gt`、`lt`等条件修饰符。 5. **循环**:Smarty提供了`foreach`和`section`两种循环方式。`foreach`可以遍历...
- **section/sectione**:循环处理数组。 以上就是 Smarty Cheat Sheet version 2.0 中的主要知识点,希望对您有所帮助。通过掌握这些基本操作,您可以更高效地使用 Smarty 模板引擎来构建动态网站。
- **循环结构**:`{section}`和`{foreach}`用于遍历数组或数据集,实现列表的展示。 4. **函数与插件** - **内置函数**:手册会介绍Smarty提供的内置函数,如日期格式化、字符串处理等。 - **自定义插件**:讲解...
9. **模板语法**:Smarty的模板语法包括控制结构(如条件语句和循环)、输出变量、函数调用以及自定义标签。例如,`{if}`用于条件判断,`{foreach}`用于遍历数组,`{include}`用于包含其他模板。 10. **编译和缓存...
- `{section}`:用于迭代多维数组,常用于表格或列表的生成。 - `{modifier}`:模板修饰符,用于处理或格式化数据,如`{truncate}`截断字符串,`{date}`格式化日期等。 3. Smarty缓存机制 Smarty支持缓存功能,...