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

Rob*_*Rob 8 php for-loop while-loop

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

所以拿这个:

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

但这不会是一样的

<?php
    $i = 1;
        while ($i < 10) {
            $i = $i + 1;
            print "Number $i\n";
        }
?>
Run Code Online (Sandbox Code Playgroud)

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

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

Nat*_*ong 11

"For"更清楚地表达了你的意图

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

  • while 意思是'我不知道这种状况会持续多久,但只要它确实如此,就做这件事.'
  • for 意思是'我有一定数量的重复让你执行.'

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

其他一些原因for在这里是可取的

  • 它更简洁,并将有关循环的所有信息放在一个地方
  • $i为循环创建一个局部变量

别忘了 foreach

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

for ($i=0; $i < count($some_array); $i++){
  echo $some_array[$i];
}
Run Code Online (Sandbox Code Playgroud)

...然后试试这个:

foreach ($some_array as $item){
   echo $item;
}
Run Code Online (Sandbox Code Playgroud)

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


Ada*_*son 10

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

for循环在这种情况下更易读,绝对是你会发现几乎已经循环指示各种语言中使用的惯例.如果你使用while循环,人们会想知道为什么你没有使用for循环.

  • 首选哪个循环是适合代码的问题,而不是您个人的偏好.如果你理解这两个循环是如何工作的,你就会明白在何时何地使用每种类型的经验. (4认同)

out*_*tis 6

在功能上,一个for循环相当于一个while循环;也就是说,每个都可以重写为另一个,而不会改变结果或副作用。然而,每一个都有不同的内涵。甲while循环运行而条件成立; 尽管情况发生了变化,但条件是静态的。一个for循环在一个序列上运行。区别对程序员很重要,但对程序不重要,正如变量名称的选择对程序员很重要,即使它们可以更改以生成功能等效的代码。根据情况,一个循环结构比另一个更有意义。