PHP中的while循环和for循环之间的区别?

时间:2010-04-23 13:34:15

标签: php for-loop while-loop

我正在阅读关于PHP的电子书,作者注意到while循环和for循环之间的区别在于for循环将计算它运行的次数。

所以这个:

<?php
    for ($i = 1; $i < 10; $i = $i + 1) {
        print "Number $i\n";
    }
?> 

但这不会与

相同
<?php
    $i = 1;
        while ($i < 10) {
            $i = $i + 1;
            print "Number $i\n";
        }
?>

或者他没有指出其他一些差异? (除了在不确定条件将保持多长时间时使用while循环,例如从数据库中选择行)

我的意思是,如果这是唯一的区别,我不能不使用for循环而是使用while循环吗?

6 个答案:

答案 0 :(得分:11)

“For”更清楚地表达了您的意图

从功能上讲,你的两个例子是相同的。但他们表达了不同的意图。

  • while的意思是'我不知道这种情况会持续多久,但只要它确实如此,就做这件事。'
  • for表示“我有一定的重复次数供您执行。”

当你的意思是另一个时,你可以使用一个,但是阅读代码会更难。

为什么for更适合

的其他一些原因
  • 它更简洁,并将有关循环的所有信息放在一个地方
  • 使$i成为循环的局部变量

不要忘记foreach

就个人而言,我在PHP中经常使用的循环是foreach。如果你发现自己做了这样的事情:

for ($i=0; $i < count($some_array); $i++){
  echo $some_array[$i];
}

...然后试试这个:

foreach ($some_array as $item){
   echo $item;
}

键入速度更快,更易于阅读。

答案 1 :(得分:10)

你能吗?是的,当然了。但是否应该是一个完全不同的问题。

for循环在这种情况下更具可读性,绝对是您在几乎所有具有循环指令的语言中都会使用的约定。如果您使用while循环,那么人们会怀疑为什么您没有使用for循环。

答案 2 :(得分:4)

从功能上讲,for循环等同于while循环;也就是说,每个都可以重写为另一个,而不会改变结果或副作用。但是,每个都有不同的内涵。条件成立时运行while循环;虽然情况发生了变化,但条件是静态的。 for循环遍历序列。这对于程序员而言不是很重要,因为变量名称的选择对于程序员来说很重要,即使它们可以被改变以产生功能相同的代码。根据情况,一个循环结构将比另一个更有意义。

答案 3 :(得分:3)

for-loop

for (INIT; CONDITIONS; UPDATE) {
    BODY
}

与这样的while循环基本相同:

INIT
while (CONDITIONS) {
    BODY
    UPDATE
}

虽然您可以在技术上使用其中一种,但在某些情况下while的效果优于for,反之亦然。

答案 4 :(得分:1)

for()和While()之间的主要区别在于,我们必须定义限制或计数,但是在while()循环中,我们直到到达最后一项时才定义限制或计数

为循环 初始化可以在循环语句中,也可以在循环外部。 通常在知道迭代次数时使用。 条件是一个关系表达式。 当初始化和增量很简单时使用。 for(init;条件;迭代) {陈述; }

WHILE LOOP 初始化总是在循环之外。 通常在未知迭代次数时使用。 条件可以是表达式或非零值。 它用于复杂的初始化。 一会儿(条件) {陈述; }

答案 5 :(得分:0)

这是品味,个人偏好和可读性的问题。有时,while循环在逻辑上更有效。有时,for

对于我的个人规则,如果我不需要变量初始值设定项,那么我使用while

但是foreach循环以其自己的方式有用。

另外,在PHP的作用域中,所有不在函数内部的变量都是全局的,无论你使用哪个循环控件,变量都会在循环之后继续存在。