找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1995|回复: 1

[教程] 几种有用的变型 PHP中循环语句的用法

[复制链接]
发表于 2013-4-8 12:08:18 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
for语句可以说是PHP(同时也是多种语言)的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多说,可以参见PHP手册for语句部分。PHP手册中对它的语法定义如下:
          for (expr1; expr2; expr3)
          statement
          下面说说for语句几种有用的变型。
          1、无限循环
          首先是人尽皆知的无限循环(亦可称'死循环')。由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。
          for (;;) {
          //放置需要不断执行的语句
          }
          ?>
          虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。
          for (;;) {
          //如果是公元2199年,则跳出循环
          if (date('Y') == '2199') {
          break;
          }
          }
          ?>
          2、使用空表达式
          接下来就是说说在初始化语句expr1中使用null语法,留空expr1最常见的作用就是完成更为复杂的初始化工作。
          if (isset($i)) {
          unset($i);
          if ((int) date('') < 2008) {
          $i = 0;
          } else {
          $i = 1;
          }
          } else {
          $i =3;
          }
          for (;$i < 10;$i ) {
          echo $i;
          }
          ?>
         
          同样道理,迭代表达式expr3也可能留空,也可以利用这点编写更为复杂的迭代式,比如说根据不同的条件调用不同的迭代式。
          而for语句中的条件语句expr2留空则是上面所说的无限循环,当然也可以添加一些更为复杂的条件去判断什么时候跳出循环,在此不在重复。
          3、多重循环
          使用多重循环来控制多个变量也是在for语句中使经常被忽略的一个特性。如下面的例子,在一般的任务中用到的一般会是双重循环,三重以上的循环一般意义不大。
          for ($i = 0, $j = 10;$i <= 10;$i , $j--) {
          echo '$i $j = 10';
          }
          ?>
          以上代码将输出:
          0 10 = 10
          1 9 = 10
          2 8 = 10
          3 7 = 10
          4 6 = 10
          5 5 = 10
          6 4 = 10
          7 3 = 10
          8 2 = 10
          9 1 = 10
          10 0 = 10
          4、更为复杂的表达式
          如果把for语句的三个表达式写得复杂一些,则可以用于优化算法。甚至可以使用没有循环体的for语句来完成一些任务。比如计算累加或阶乘:
          //计算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;
          ?>
          PHP借助了C语言的语法,一定程度上也会拥有C的特性,比如说强大的for循环语句就是一个典型的例子。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2013-4-8 17:29:59 | 显示全部楼层 来自 中国–北京–北京
用编辑起啊,这样有很多好处,利于新人来看

评分

参与人数 1金币 +5 收起 理由
抢楼评分专号 + 5 很幸运,你获得了抢楼奖励!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-19 20:26 , Processed in 0.048147 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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