for循环是大家常用的循环体函数,常见模式如:
for($i = 0; $i < 100; $i++){
echo '第'.$i."<br>";
}
从小到大或从大到小,依次执行大括号中的代码。
那么我们这样写行不行呢?
for($i = 0; $i < 100; $i += 2){
echo '第'.$i."<br>";
}
当然是可以的。我们可以这样来看for循环:for(一个变量,(bool判断表达式)决定是否继续执行循环,一个表达式){}
所以上面的函数,我们完全可以这样写:
$i = 0;
for(; $i < 100; ){
echo '第'.$i."<br>";
$i += 2;
}
也可以这样来改变:
$i = 0;
for($flag = true;$flag;){
echo $i."<br>";
$i += 2;
if($i == 100)
$flag = false;
}
当然我们这样改变似乎不仅毫无意义,好像更麻烦了。
但我们可以看出,这个for循环似乎只是需要中间的bool值为真就会继续执行,为假就结束循环。
而前边的变量和后边的表达式也并不是一定要按照某种规律来写
所以我们在遍历mysql数据集的时候这样写:for($COUNT=1;$ROW=mysql_fetch_array($cursor);$COUNT++),
最终得到的结果与while循环并没有什么差别。
最后我们来看一个for循环函数:
for($flag = true;$flag;一个表达式){
if(一个条件为真)
$flag = false;//结束循环
}
从这个角度来看for循环,似乎我们能够得到关于它的更多运用。
另外经过一些程序测试,我发现for函数比while函数更加高效:
我是用导出数据来做的测试,函数体中有大量的计算类代码、函数、数据等。
对相同的数据导出发现,用while时大约用50秒,用for时大约用了40秒。
可能在其他情况下有不同结果,有兴趣可以做做测试。
The End!
Thank you everyone.