PHP имеет четыре вида циклов и операторы управления ими, рассмотрим поподробнее.
Предназначен для перебора элементов массива.
$array = array(
1 => 'Значение 1',
2 => 'Значение 2',
3 => 'Значение 3',
4 => 'Значение 4',
);
// Вывод ключей
foreach ($array as $key => $val) {
echo $key . '<br>';
}
// Вывод значений
foreach ($array as $key => $val) {
echo $val . '<br>';
}
Результат:
1
2
3
4
Значение 1
Значение 2
Значение 3
Значение 4
Альтернативный синтаксис foreach
Цикл работает пока выполняется заданное условие. Обычно применяется в качестве счетчика.
// Счетчик от 0 до 5
for ($n = 0; $n <= 5; $n++) {
echo $n;
}
// Счетчик от 5 до 0
for ($n = 5; $n >= 0; $n--) {
echo $n;
}
Результат:
012345
543210
Альтернативный синтаксис
Им также можно перебирать массивы, у которых не заданы ключи.$array = array(
'Значение 1',
'Значение 2',
'Значение 3',
'Значение 4',
);
for ($n = 0; $n < count($array); $n++) {
echo $array[$n] . '<br>';
}
Результат:
Значение 1
Значение 2
Значение 3
Значение 4
Альтернативный синтаксис for
Т.е. если перед началом итерации условие выполняется, то цикл продолжает свою работу.
Результат:
012345
Альтернативный синтаксис while
В отличии от while этот цикл проверяет выполнения условия после каждой итерации. Do-while не имеет альтернативного синтаксиса.
Результат:
012345
Break
Вызов break
или break 1
в цикле останавливает его.
Для вложенных циклов используется break 2
и т.д.
for ($n = 0; $n <= 5; $n++) {
for ($k = 0; $k <= 5; $k++) {
if ($n == 2 && $k == 2) {
// Остановить оба цикла
break 2;
}
echo $k;
}
}
Continue
Используется для пропуска итерации.
Результат:
01245
Для вложенных циклов по аналогии с break 2
, break 3
– continue 2
, continue 3
.