如何在PHP中使用循环(附实例)

124 阅读1分钟

循环是一种超级有用的控制结构。

我们在PHP中有几种不同的循环。while,do while,for,foreach

让我们来看看它们

while

while 是最简单的一个。它不断地迭代,而条件评估为true

while (true) {
  echo 'looping';
}

这将是一个无限循环,这就是我们使用变量和比较的原因:

$counter = 0;

while ($counter < 10) {
  echo $counter;
  $counter++;
}

do while

do while 是类似的,但在第一次迭代的执行方式上略有不同:

$counter = 0;

do {
  echo $counter;
  $counter++;
} while ($counter < 10);

do while 循环中,首先我们进行第一次迭代,然后我们检查条件。

while 中,首先我们检查条件,然后我们进行迭代。

做一个简单的测试,在上面的例子中把$counter 设为15,看看会发生什么。

你可能想选择一种循环,或者另一种,取决于你的使用情况。

foreach

foreach 循环被用来轻松地迭代一个数组:

$list = ['a', 'b', 'c'];

foreach ($list as $value) {
  echo $value;
}

你也可以通过这种方式获得索引(或关联数组中的键)的值:

$list = ['a', 'b', 'c'];

foreach ($list as $key => $value) {
  echo $key;
}

for

for 循环类似于while,但是在循环之前不需要定义条件中使用的变量,也不需要手动递增索引变量,而是在第一行就完成:

for ($i = 0; $i < 10; $i++) {
  echo $i;
}

//result: 0123456789

你可以这样使用for循环来迭代一个数组:

$list = ['a', 'b', 'c'];

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

//result: abc

breakcontinue

在许多情况下,你希望能够按需停止一个循环。

例如,你想在数组中的变量的值为'b' 时停止一个for 循环:

$list = ['a', 'b', 'c'];

for ($i = 0; $i < count($list); $i++) {
	if ($list[$i] == 'b') {
    break;
  }
  echo $list[$i];
}

//result: a

这使得循环在这一点上完全停止,程序在循环后的下一条指令继续执行。

如果你只是想跳过当前的循环迭代,继续寻找,可以用continue 来代替:

$list = ['a', 'b', 'c'];

for ($i = 0; $i < count($list); $i++) {
	if ($list[$i] == 'b') {
    continue;
  }
  echo $list[$i];
}

//result: ac