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

foreach标签也是用于循环输出,同时foreach比较符合大家的习惯。

在演示前,我们首先给我们的模板赋值,这里我们首先一个数组,我这里给大家去找了几条笑话。希望大家在玩转代码的同

时,开心一笑。


首先我们在控制器传递给模板传递一个值:

  1. $arrList = array(   
  2.      'adult_jokes'=>'老婆刚刚生下了一个女儿,老公有些失望。   
  3.  老婆说:“虽然是女儿,但这鼻子,嘴巴多象你!多漂亮!”   
  4.  老公叹了口气:“哎,可最重要的东西还是象你!”   
  5. ',   
  6.      'cold_jokes'=>'成功就像怀孕,每个人都来恭喜你!   
  7.  但是木有人知道你被操了多少次?!   
  8. ',   
  9.      'husband_and_wife_joke'=>'妻子一直抱怨自己的胸部不丰满!   
  10.  于是向丈夫要钱去做隆乳手术,丈夫屡次劝说不听。   
  11.  丈夫忍无可忍,说道:“现在家里钱不够,你做一边好吗?”   
  12.  从此,妻子再也不要求隆乳了。   
  13. ',   
  14.      'embarrassing_stories_to_tell_Daquan'=>'今天花了一百五十块钱剪了一个很抽象的头。   
  15.  回寝室后遭到几个室友强力批判!   
  16.  这时候一旁沉默许久的一同学总结说:“这发型性价比很高!才花一百五,剪了个二百五的头。”   
  17. ',   
  18. );   
  19. $this->assign('arrList',$arrList);   
  20. $this->display();  

如图:


1:简洁版的foreach循环

foreach可以非常简洁输出结果,我们现在在模板中输出如下的结果:

  1. <foreach for=arrList>   
  2. <font color="green">{$i}</font>:笑话类型( <font color="red">{$key}</font> )|{$value}<br><br>   
  3. </foreach>  


程序运行后PHP 编译代码为:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:31:26  */    
  2.   
  3. ?>   
  4. <?php $i=1 ;?>   
  5. <?php if( is_array( $arrList ) ) : foreach( $arrList as $key=>$value): ?>   
  6.   
  7. <font color="green"><?php echo( $i ); ?></font>:笑话类型( <font color="red"><?php echo( $key ); ?></font>    
  8.   
  9. )|<?php echo( $value ); ?><br><br>   
  10.   
  11. <?php $i++ ;?>   
  12. <?php endforeach;endif; ?>  

如图:


程序运行后的结果:

  1. 1:笑话类型( adult_jokes )|老婆刚刚生下了一个女儿,老公有些失望。 老婆说:“虽然是女儿,但这鼻子,嘴巴多象你   
  2.   
  3. !多漂亮!” 老公叹了口气:“哎,可最重要的东西还是象你!”   
  4.     
  5. 2:笑话类型( cold_jokes )|成功就像怀孕,每个人都来恭喜你! 但是木有人知道你被操了多少次?!    
  6.   
  7. 3:笑话类型( husband-and-wife-joke )|妻子一直抱怨自己的胸部不丰满! 于是向丈夫要钱去做隆乳手术,丈夫屡次劝说   
  8.   
  9. 不听。 丈夫忍无可忍,说道:“现在家里钱不够,你做一边好吗?” 从此,妻子再也不要求隆乳了。   
  10.     
  11. 4:笑话类型( embarrassing-stories-to-tell-Daquan )|今天花了一百五十块钱剪了一个很抽象的头。 回寝室后遭到几个   
  12.   
  13. 室友强力批判! 这时候一旁沉默许久的一同学总结说:“这发型性价比很高!才花一百五,剪了个二百五的头。”   
  14.    


如图:


2:完成版foreach语法

当然foreach还支持更多的语法,现在是完整版,我们可以在模板中写下如下的代码:

  1. <foreach for=arrList value=my_value key=my_key index=my_index>   
  2. <font color="green">{$my_index}</font>:笑话类型( <font color="red">{$my_key}</font> )|{$my_value}<br><br>   
  3. </foreach>   
  4.    


程序运行的编译PHP 代码为:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:38:07  */    
  2.   
  3. ?>   
  4. <?php $my_index=1 ;?>   
  5. <?php if( is_array( $arrList ) ) : foreach( $arrList as $my_key=>$my_value): ?>   
  6.   
  7. <font color="green"><?php echo( $my_index ); ?></font>:笑话类型( <font color="red"><?php echo( $my_key ); ?   
  8.   
  9. ></font> )|<?php echo( $my_value ); ?><br><br>   
  10.   
  11. <?php $my_index++ ;?>   
  12. <?php endforeach;endif; ?>   
  13.    

如图:


程序运行后的结果:

  1. 1:笑话类型( adult_jokes )|老婆刚刚生下了一个女儿,老公有些失望。 老婆说:“虽然是女儿,但这鼻子,嘴巴多象你   
  2.   
  3. !多漂亮!” 老公叹了口气:“哎,可最重要的东西还是象你!”   
  4.     
  5. 2:笑话类型( cold_jokes )|成功就像怀孕,每个人都来恭喜你! 但是木有人知道你被操了多少次?!    
  6.   
  7. 3:笑话类型( husband-and-wife-joke )|妻子一直抱怨自己的胸部不丰满! 于是向丈夫要钱去做隆乳手术,丈夫屡次劝说   
  8.   
  9. 不听。 丈夫忍无可忍,说道:“现在家里钱不够,你做一边好吗?” 从此,妻子再也不要求隆乳了。   
  10.     
  11. 4:笑话类型( embarrassing-stories-to-tell-Daquan )|今天花了一百五十块钱剪了一个很抽象的头。 回寝室后遭到几个   
  12.   
  13. 室友强力批判! 这时候一旁沉默许久的一同学总结说:“这发型性价比很高!才花一百五,剪了个二百五的头。”   
  14.    

如图:


3:foreach语法的属性支持表达式(同if 的条件一样)

我们可以在模板中写下如下的代码:

  1. {~$list ='arrList'}   
  2. <foreach for=$list>       
  3. <font color="green">{$i}</font>:笑话类型( <font color="red">{$key}</font> )|{$value}<br><br>       
  4. </foreach>  


程序运行的编译PHP 代码为:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 23:45:23  */ ?>   
  2. <?php $list ='arrList' ; ?>   
  3. <?php $i=1 ;?>   
  4. <?php if( is_array( $$list ) ) : foreach( $$list as $key=>$value): ?>   
  5.        
  6. <font color="green"><?php echo( $i ); ?></font>:笑话类型( <font color="red"><?php echo( $key ); ?></font> )|<?php echo( $value ); ?><br><br>       
  7.   
  8. <?php $i++ ;?>   
  9. <?php endforeach;endif; ?>   

如图:


程序运行后的结果:

  1. 1:笑话类型( adult_jokes )|老婆刚刚生下了一个女儿,老公有些失望。 老婆说:“虽然是女儿,但这鼻子,嘴巴多象你!多漂亮!” 老公叹了口气:“哎,可最重要的东西还是象你!”    
  2.   
  3. 2:笑话类型( cold_jokes )|成功就像怀孕,每个人都来恭喜你! 但是木有人知道你被操了多少次?!    
  4.   
  5. 3:笑话类型( husband_and_wife_joke )|妻子一直抱怨自己的胸部不丰满! 于是向丈夫要钱去做隆乳手术,丈夫屡次劝说不听。 丈夫忍无可忍,说道:“现在家里钱不够,你做一边好吗?” 从此,妻子再也不要求隆乳了。    
  6.   
  7. 4:笑话类型( embarrassing_stories_to_tell_Daquan )|今天花了一百五十块钱剪了一个很抽象的头。 回寝室后遭到几个室友强力批判! 这时候一旁沉默许久的一同学总结说:“这发型性价比很高!才花一百五,剪了个二百五的头。”    

如图:


4:基于代码的foreach语法规则


系统除了支持node标签来循环数据外,我们还提供了code版本,当然code版本的更简洁。

第一种情况,我们不需要键值,这个时候我们在模板中写下如下的代码:

  1. {foreach $arrList $value}   
  2. {$value}<br><br>   
  3. {/foreach}   
  4.    


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:46:10  */    
  2.   
  3. ?>   
  4. <?php if(is_array($arrList)) : foreach($arrList as $value ) : ?>   
  5. <?php echo( $value ); ?><br><br>   
  6. <?php endforeach; endif; ?>  


如图:


程序运行后最后结果如下:

  1. 老婆刚刚生下了一个女儿,老公有些失望。 老婆说:“虽然是女儿,但这鼻子,嘴巴多象你!多漂亮!” 老公叹了口气:   
  2.   
  3. “哎,可最重要的东西还是象你!”    
  4.   
  5. 成功就像怀孕,每个人都来恭喜你! 但是木有人知道你被操了多少次?!    
  6.   
  7. 妻子一直抱怨自己的胸部不丰满! 于是向丈夫要钱去做隆乳手术,丈夫屡次劝说不听。 丈夫忍无可忍,说道:“现在家里   
  8.   
  9. 钱不够,你做一边好吗?” 从此,妻子再也不要求隆乳了。   
  10.     
  11. 今天花了一百五十块钱剪了一个很抽象的头。 回寝室后遭到几个室友强力批判! 这时候一旁沉默许久的一同学总结说:“   
  12.   
  13. 这发型性价比很高!才花一百五,剪了个二百五的头。”  

如图:


我们也可以输出键值,我们在模板中写下如下的代码:

  1. {foreach $arrList $key $value}   
  2. 笑话类型( <font color="red">{$key}</font> )|{$value}<br><br>   
  3. {/foreach}  


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:51:21  */ ?>   
  2. <?php if(is_array($arrList)) : foreach($arrList as $key=>$value ) : ?>   
  3. 笑话类型( <font color="red"><?php echo( $key ); ?></font> )|<?php echo( $value ); ?><br><br>   
  4. <?php endforeach; endif; ?>  


如图:

程序运行后的结果如下:

  1. 笑话类型( adult_jokes )|老婆刚刚生下了一个女儿,老公有些失望。 老婆说:“虽然是女儿,但这鼻子,嘴巴多象你!多漂亮!” 老公叹了口气:“哎,可最重要的东西还是象你!”   
  2.     
  3. 笑话类型( cold_jokes )|成功就像怀孕,每个人都来恭喜你! 但是木有人知道你被操了多少次?!    
  4.   
  5. 笑话类型( husband-and-wife-joke )|妻子一直抱怨自己的胸部不丰满! 于是向丈夫要钱去做隆乳手术,丈夫屡次劝说不听。 丈夫忍无可忍,说道:“现在家里钱不够,你做一边好吗?” 从此,妻子再也不要求隆乳了。   
  6.     
  7. 笑话类型( embarrassing-stories-to-tell-Daquan )|今天花了一百五十块钱剪了一个很抽象的头。 回寝室后遭到几个室友强力批判! 这时候一旁沉默许久的一同学总结说:“这发型性价比很高!才花一百五,剪了个二百五的头。”  

 

如图:

说明:代码版本的foreach有一个别名list,使用方法和foreach一样。


OK,Foreach就到这里就Ok了。