The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 标签嵌套 ]

模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。模板引擎的所有标签都可以相互嵌
套
,并且代码标签和节点标签之间没有一点障碍。

例如:

  1. <php>   
  2. $list = array(   
  3.     array(   
  4.         'sub'=>array(   
  5.             'sub1'=>'I am first !',   
  6.             'sub2'=>'I am second !',   
  7.             'sub3'=>'I am third !'   
  8.         ),   
  9.     ),   
  10.     array(   
  11.         'sub'=>array(   
  12.             'sub1'=>'DoYouHaoBaby Says :I am first !',   
  13.             'sub2'=>'Google Says :I am second !',   
  14.             'sub3'=>'Microsoft Says :I am third !'   
  15.         ),   
  16.     ),   
  17. );   
  18. </php>   
  19.   
  20. <volist name="list" id="vo">     
  21.     
  22.  <foreach for="$vo['sub']">   
  23.     {$key}-{$value}<br><br>     
  24.  </foreach>      
  25.   
  26. </volist>  

上面的标签可以用于输出双重循环。


程序编译后的PHP 代码如下:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 05:19:00  */ ?>   
  2. <?php    
  3. $list = array(   
  4.     array(   
  5.         'sub'=>array(   
  6.             'sub1'=>'I am first !',   
  7.             'sub2'=>'I am second !',   
  8.             'sub3'=>'I am third !'   
  9.         ),   
  10.     ),   
  11.     array(   
  12.         'sub'=>array(   
  13.             'sub1'=>'DoYouHaoBaby Says :I am first !',   
  14.             'sub2'=>'Google Says :I am second !',   
  15.             'sub3'=>'Microsoft Says :I am third !'   
  16.         ),   
  17.     ),   
  18. );   
  19.  ?>   
  20.   
  21. <?php if(is_array($list)): $i = 0; $arrList = $list;if( count($arrList)==0 ) : echo "" ;else: foreach($arrList as $key=>$vo): ++$i;$mod = ($i % 2 )?>     
  22.     
  23.  <?php $i=1 ;?>   
  24. <?php if( is_array( $vo['sub'] ) ) : foreach( $vo['sub'] as $key=>$value): ?>   
  25.   
  26.     <?php echo( $key ); ?>-<?php echo( $value ); ?><br><br>     
  27.     
  28. <?php $i++ ;?>   
  29. <?php endforeach;endif; ?>      
  30.   
  31. <?php endforeach; endif; else: echo "" ;endif; ?>  


如图:


程序运行结果如下:

  1. sub1-I am first !   
  2.   
  3. sub2-I am second !   
  4.   
  5. sub3-I am third !   
  6.   
  7. sub1-DoYouHaoBaby Says :I am first !   
  8.   
  9. sub2-Google Says :I am second !   
  10.   
  11. sub3-Microsoft Says :I am third !  


如图:


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