Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14424763
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:32:28

下载本文示例代码
  for语句可以说是PHP(同时也是多种语言)的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多说,可以参见PHP手册for语句部分。PHP手册中对它的语法定义如下: for (expr1; expr2; expr3)statement  下面说说for语句几种有用的变型。  1、无限循环  首先是人尽皆知的无限循环(亦可称“死循环”)。由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。 <?phpfor (;;) { //放置需要不断执行的语句}?>  虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。 <?phpfor (;;) { //如果是公元2199年,则跳出循环 if (date('Y') == '2199') {  break; }}?>  2、使用空表达式  接下来就是说说在初始化语句expr1中使用null语法,留空expr1最常见的作用就是完成更为复杂的初始化工作。 <?phpif (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语句中使经常被忽略的一个特性。如下面的例子,在一般的任务中用到的一般会是双重循环,三重以上的循环一般意义不大。 <?phpfor ($i = 0, $j = 10;$i <= 10;$i , $j--) { echo "$i $j = 10\r\n";}?>  以上代码将输出: 0 10 = 101 9 = 102 8 = 103 7 = 104 6 = 105 5 = 106 4 = 107 3 = 108 2 = 109 1 = 1010 0 = 10  4、更为复杂的表达式  如果把for语句的三个表达式写得复杂一些,则可以用于优化算法。甚至可以使用没有循环体的for语句来完成一些任务。比如计算累加或阶乘: <?php//计算1-5的累加结果,斌值到$jfor ($i = 1,$j = 0; $i <= 5;$j = $i );echo $j;//计算1-5的阶乘结果,斌值到$jfor ($i = 1,$j = 1; $i <= 5;$j *= $i );echo $j;?>   PHP借助了C语言的语法,一定程度上也会拥有C的特性,比如说强大的for循环语句就是一个典型的例子。 编辑推荐:PHP 5.0对象模型深度探索   for语句可以说是PHP(同时也是多种语言)的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多说,可以参见PHP手册for语句部分。PHP手册中对它的语法定义如下: for (expr1; expr2; expr3)statement  下面说说for语句几种有用的变型。  1、无限循环  首先是人尽皆知的无限循环(亦可称“死循环”)。由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。 <?phpfor (;;) { //放置需要不断执行的语句}?>  虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。 <?phpfor (;;) { //如果是公元2199年,则跳出循环 if (date('Y') == '2199') {  break; }}?>  2、使用空表达式  接下来就是说说在初始化语句expr1中使用null语法,留空expr1最常见的作用就是完成更为复杂的初始化工作。 <?phpif (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语句中使经常被忽略的一个特性。如下面的例子,在一般的任务中用到的一般会是双重循环,三重以上的循环一般意义不大。 <?phpfor ($i = 0, $j = 10;$i <= 10;$i , $j--) { echo "$i $j = 10\r\n";}?>  以上代码将输出: 0 10 = 101 9 = 102 8 = 103 7 = 104 6 = 105 5 = 106 4 = 107 3 = 108 2 = 109 1 = 1010 0 = 10  4、更为复杂的表达式  如果把for语句的三个表达式写得复杂一些,则可以用于优化算法。甚至可以使用没有循环体的for语句来完成一些任务。比如计算累加或阶乘: <?php//计算1-5的累加结果,斌值到$jfor ($i = 1,$j = 0; $i <= 5;$j = $i );echo $j;//计算1-5的阶乘结果,斌值到$jfor ($i = 1,$j = 1; $i <= 5;$j *= $i );echo $j;?>   PHP借助了C语言的语法,一定程度上也会拥有C的特性,比如说强大的for循环语句就是一个典型的例子。 编辑推荐:PHP 5.0对象模型深度探索 下载本文示例代码


PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法PHP中for循环语句的几种“变态”用法
阅读(149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~