超酷小 发表于 2017-4-6 09:43:39

php的for循环用法详解

  这是一个非常初级的话题。但是,如果真的弄懂与用好了却是受益终身。所以,今日特分享给本网站(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]
查看完整版本: php的for循环用法详解