循环是一种超级有用的控制结构。
我们在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
break 和continue
在许多情况下,你希望能够按需停止一个循环。
例如,你想在数组中的变量的值为'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