Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
foreach标签也是用于循环输出,同时foreach比较符合大家的习惯。
在演示前,我们首先给我们的模板赋值,这里我们首先一个数组,我这里给大家去找了几条笑话。希望大家在玩转代码的同
时,开心一笑。
首先我们在控制器传递给模板传递一个值:
- $arrList = array(
- 'adult_jokes'=>'老婆刚刚生下了一个女儿,老公有些失望。
- 老婆说:“虽然是女儿,但这鼻子,嘴巴多象你!多漂亮!”
- 老公叹了口气:“哎,可最重要的东西还是象你!”
- ',
- 'cold_jokes'=>'成功就像怀孕,每个人都来恭喜你!
- 但是木有人知道你被操了多少次?!
- ',
- 'husband_and_wife_joke'=>'妻子一直抱怨自己的胸部不丰满!
- 于是向丈夫要钱去做隆乳手术,丈夫屡次劝说不听。
- 丈夫忍无可忍,说道:“现在家里钱不够,你做一边好吗?”
- 从此,妻子再也不要求隆乳了。
- ',
- 'embarrassing_stories_to_tell_Daquan'=>'今天花了一百五十块钱剪了一个很抽象的头。
- 回寝室后遭到几个室友强力批判!
- 这时候一旁沉默许久的一同学总结说:“这发型性价比很高!才花一百五,剪了个二百五的头。”
- ',
- );
- $this->assign('arrList',$arrList);
- $this->display();
如图:

foreach可以非常简洁输出结果,我们现在在模板中输出如下的结果:
- <foreach for=arrList>
- <font color="green">{$i}</font>:笑话类型( <font color="red">{$key}</font> )|{$value}<br><br>
- </foreach>
程序运行后PHP 编译代码为:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:31:26 */
- ?>
- <?php $i=1 ;?>
- <?php if( is_array( $arrList ) ) : foreach( $arrList as $key=>$value): ?>
- <font color="green"><?php echo( $i ); ?></font>:笑话类型( <font color="red"><?php echo( $key ); ?></font>
- )|<?php echo( $value ); ?><br><br>
- <?php $i++ ;?>
- <?php endforeach;endif; ?>
如图:

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

当然foreach还支持更多的语法,现在是完整版,我们可以在模板中写下如下的代码:
- <foreach for=arrList value=my_value key=my_key index=my_index>
- <font color="green">{$my_index}</font>:笑话类型( <font color="red">{$my_key}</font> )|{$my_value}<br><br>
- </foreach>
程序运行的编译PHP 代码为:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:38:07 */
- ?>
- <?php $my_index=1 ;?>
- <?php if( is_array( $arrList ) ) : foreach( $arrList as $my_key=>$my_value): ?>
- <font color="green"><?php echo( $my_index ); ?></font>:笑话类型( <font color="red"><?php echo( $my_key ); ?
- ></font> )|<?php echo( $my_value ); ?><br><br>
- <?php $my_index++ ;?>
- <?php endforeach;endif; ?>
如图:

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

我们可以在模板中写下如下的代码:
- {~$list ='arrList'}
- <foreach for=$list>
- <font color="green">{$i}</font>:笑话类型( <font color="red">{$key}</font> )|{$value}<br><br>
- </foreach>
程序运行的编译PHP 代码为:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 23:45:23 */ ?>
- <?php $list ='arrList' ; ?>
- <?php $i=1 ;?>
- <?php if( is_array( $$list ) ) : foreach( $$list as $key=>$value): ?>
- <font color="green"><?php echo( $i ); ?></font>:笑话类型( <font color="red"><?php echo( $key ); ?></font> )|<?php echo( $value ); ?><br><br>
- <?php $i++ ;?>
- <?php endforeach;endif; ?>
如图:

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

系统除了支持node标签来循环数据外,我们还提供了code版本,当然code版本的更简洁。
第一种情况,我们不需要键值,这个时候我们在模板中写下如下的代码:
- {foreach $arrList $value}
- {$value}<br><br>
- {/foreach}
程序 运行后的PHP 编译代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:46:10 */
- ?>
- <?php if(is_array($arrList)) : foreach($arrList as $value ) : ?>
- <?php echo( $value ); ?><br><br>
- <?php endforeach; endif; ?>
如图:

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

我们也可以输出键值,我们在模板中写下如下的代码:
- {foreach $arrList $key $value}
- 笑话类型( <font color="red">{$key}</font> )|{$value}<br><br>
- {/foreach}
程序运行后的PHP 编译代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 09:51:21 */ ?>
- <?php if(is_array($arrList)) : foreach($arrList as $key=>$value ) : ?>
- 笑话类型( <font color="red"><?php echo( $key ); ?></font> )|<?php echo( $value ); ?><br><br>
- <?php endforeach; endif; ?>
如图:

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

说明:代码版本的foreach有一个别名list,使用方法和foreach一样。
OK,Foreach就到这里就Ok了。
