设为首页 收藏本站
查看: 634|回复: 0

[经验分享] php的for循环用法详解

[复制链接]

尚未签到

发表于 2017-4-6 09:43:39 | 显示全部楼层 |阅读模式
  这是一个非常初级的话题。但是,如果真的弄懂与用好了却是受益终身。所以,今日特分享给本网站(iteye.com)的各位初学者。
 
 for循环语法是:
 for($exp1;$exp2;$exp3){循环体内算法代码}
 其中:
  $exp1是初始化,
  $exp2是终止条件
  $exp3是递增或递减规则
 同时,三个表达式均可以使用逗号分隔,从而指定多个循环参数。
 
 1、简单循环示例
 for($i=0;$i<100;$i++){循环体内算法代码}
 for($i=3;$i<100;$i+=2){循环体内算法代码}
 
 2、当循环参数已初始化
 for(;$i<100;$i++){循环体内算法代码}
 for(;$i<100;$i+=2){循环体内算法代码}
 
 3、条件初始化示例
 条件初始化的好处是,可以加快程序的速度,去掉条件检测中的函数或复杂表达式。
 for($i=0, $j<count($arr); $i<$j; $i++){循环体内算法代码}
 原理:初始化只运行一次,而条件与递增表达式则是在每次循环中必须要执行的。所以,这样处理后,速度肯定加快了。
 
 4、多重循环
 for($i = 0, $j = 10;$i<=10;$i++, $j--){循环体内算法代码}
 注:以上条件只有单一条件。
 for($i = 0, $j = 10;$i<=10 && $j>5; $i++, $j--){循环体内算法代码}
 注:以上条件为多个条件。一旦条件为假,则会终止循环。
 
 5、复杂的递增或递减
 计算1-5的累加结果,斌值到$j
 for ($i = 1,$j = 0; $i <= 5;$j += $i++);
 echo $j; 
 计算1-5的阶乘结果,斌值到$j
 for ($i = 1,$j = 1; $i <= 5;$j *= $i++);
 echo $j;
 注意:多循环变量表达式组合,可以减少代码中写嵌套的for循环。但另一方面,则会使代码可读性降低。
 
 6、无限循环
 for(;;){
  if($expression)
   break; //无限循环内部,必须要有终止条件。
 }
 
 7、进一步组合
 我们可以进一步灵活组合,根据程序的实际需要,比如:
 for (;; $j *= $i++){ //无初始化,无条件,只有递增
  if($expression)
   break; //无限循环内部,必须要有终止条件。
 }
 
 8、无循环参数
 $array = array("value1","value2","value3");
 for(reset($array);current($array);next($array)){ //这里,三个表达式均是用函数实现的。而这个方法,实际实现了与foreach完全相同的功能。
    echo("Element ".key($array)." contains ".current($array)."<br/>");
 }
 由此可见,不一定要循环参数,只要实现了真正的迭代,for循环也能正常运行。回过头来,我们再看for循环语法:
 for($exp1;$exp2;$exp3){循环体内算法代码}
  其中:
  $exp1是初始化,
  $exp2是终止条件
  $exp3是递增或递减规则
  可见,上面程序所以能运行,因为它是符合语法的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-360875-1-1.html 上篇帖子: PHP payal 支付 接口 开发详解 下篇帖子: 配置php请参看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表