The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 标签嵌套 ]
模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。模板引擎的所有标签都可以相互嵌
套,并且代码标签和节点标签之间没有一点障碍。
例如:
- <php>
- $list = array(
- array(
- 'sub'=>array(
- 'sub1'=>'I am first !',
- 'sub2'=>'I am second !',
- 'sub3'=>'I am third !'
- ),
- ),
- array(
- 'sub'=>array(
- 'sub1'=>'DoYouHaoBaby Says :I am first !',
- 'sub2'=>'Google Says :I am second !',
- 'sub3'=>'Microsoft Says :I am third !'
- ),
- ),
- );
- </php>
- <volist name="list" id="vo">
- <foreach for="$vo['sub']">
- {$key}-{$value}<br><br>
- </foreach>
- </volist>
上面的标签可以用于输出双重循环。
程序编译后的PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 05:19:00 */ ?>
- <?php
- $list = array(
- array(
- 'sub'=>array(
- 'sub1'=>'I am first !',
- 'sub2'=>'I am second !',
- 'sub3'=>'I am third !'
- ),
- ),
- array(
- 'sub'=>array(
- 'sub1'=>'DoYouHaoBaby Says :I am first !',
- 'sub2'=>'Google Says :I am second !',
- 'sub3'=>'Microsoft Says :I am third !'
- ),
- ),
- );
- ?>
- <?php if(is_array($list)): $i = 0; $arrList = $list;if( count($arrList)==0 ) : echo "" ;else: foreach($arrList as $key=>$vo): ++$i;$mod = ($i % 2 )?>
- <?php $i=1 ;?>
- <?php if( is_array( $vo['sub'] ) ) : foreach( $vo['sub'] as $key=>$value): ?>
- <?php echo( $key ); ?>-<?php echo( $value ); ?><br><br>
- <?php $i++ ;?>
- <?php endforeach;endif; ?>
- <?php endforeach; endif; else: echo "" ;endif; ?>
如图:

程序运行结果如下:
- sub1-I am first !
- sub2-I am second !
- sub3-I am third !
- sub1-DoYouHaoBaby Says :I am first !
- sub2-Google Says :I am second !
- sub3-Microsoft Says :I am third !
如图:

注意:foreach因为单引号的存在,我们不能使用for=$vo['sub'] ,需要使用”for=$vo['sub']“ ,把里面当作字符串来处理,程序才会正确处理。
同时,标签嵌套之间没有层次限制,所以说,你可以随意地嵌套,而无所顾虑。
