Цикл while
Выполнение выражений в цикле while продолжается до тех пор, пока логи-
ческое выражение истинно. Имеет следующий формат:
<Начальное значение>;
while (<Условие>) {
<Выражения>;
<Приращение>;
}
Последовательность работы цикла while:
1. Переменной-счетчику присваивается начальное значение.
2. Проверяется условие; если оно истинно, выполняются выражения внутри цикла, иначе выполнение цикла завершается.
3. Переменная-счетчик изменяется на величину, указанную в <Приращение>.
4. Переход к п. 2.
Выведем все числа от 1 до 100, используя цикл while:
$i = 1;
while ($i<101) {
echo $i . "<br>\n";
$i++;
}
В НИМ АНИЕ !
Если <Приращение> не указано, то цикл будет бесконечным.
В качестве <Приращение> не обязательно использовать арифметическую опе- рацию. Например, при работе с базами данных в качестве <Приращение> бу- дет перемещение к следующей строке, а условием выхода из цикла — по- следняя строка в базе данных. В этом случае <Начальное значение> — получение первой строки базы данных.
5.20.3. Цикл do…while
Выполнение выражений в цикле do…while продолжается до тех пор, пока ло-
гическое выражение истинно. Но в отличие от цикла while условие проверя-
ется не в начале цикла, а в конце. По этой причине выражения внутри цикла
do…while выполнятся минимум один раз.
Цикл имеет следующий формат:
<Начальное значение>;
do {
<Выражения>;
<Приращение>;
} while (<Условие>);
Последовательность работы цикла do…while.
1. Переменной-счетчику присваивается начальное значение.
2. Выполняются выражения внутри цикла.
3. Переменная-счетчик изменяется на величину, указанную в <Приращение>.
4. Проверяется условие; если оно истинно, происходит переход к п. 2, а если нет — выполнение цикла завершается.
Выведем все числа от 1 до 100, используя цикл do…while:
$i = 1;
do {
echo $i . "<br>\n";
$i++;
} while ($i<101);
В НИМ АНИЕ !
Если <Приращение> не указано, то цикл будет бесконечным.
5.20.4. Цикл foreach
Цикл foreach используется для перебора элементов массива:
$Mass = array(‘Один’, ‘Два’, ‘Три’, ‘Четыре’);
foreach ($Mass as $key) {
echo $key . ‘<br>’;
}
Перебрать элементы ассоциативного массива можно следующим образом:
$Mass['Один'] = 1;
$Mass['Два'] = 2;
$Mass['Три'] = 3;
$Mass['Четыре'] = 4;
foreach ($Mass as $key => $value) {
echo $key . ‘ => ‘ . $value . ‘<br>’;
}
Если параметр в цикле foreach не является массивом, интерпретатор выведет сообщение об ошибке:
$Mass = ”;
foreach ($Mass as $key => $value) {
echo $key . ‘ => ‘ . $value . ‘<br>’;
}
// Ошибка: Warning: Invalid argument supplied for foreach()
По этой причине перед использованием цикла foreach необходимо прове-
рить тип переменной, например, с помощью функции is_array():
if (isset($Mass) && is_array($Mass)) {
// Проверка существования и типа переменной
foreach ($Mass as $key => $value) {
echo $key . ‘ => ‘ . $value . ‘<br>’;
}
}
5.20.5. Оператор continue.
Переход на следующую итерацию цикла
Оператор continue позволяет перейти к следующей итерации цикла до за-
вершения выполнения всех выражений внутри цикла.
Выведем все числа от 1 до 100, кроме чисел от 5 до 10 включительно:
for ($i=1; $i<101; $i++) {
if ($i>4 && $i<11) continue;
echo $i . "<br>\n";
}
5.20.6. Оператор break.
Прерывание цикла
Оператор break позволяет прервать выполнение цикла досрочно. Для примера выведем все числа от 1 до 100 еще одним способом: for ($i=1; ; $i++) {
if ($i>100) break;
echo $i . "<br>\n";
}
Здесь мы оставили условие цикла пустым, и это значит, что цикл будет про- должаться бесконечно. Однако использование оператора break прерывает его выполнение, как только 100 строк уже напечатано.
Оператор break прерывает выполнение цикла, а не программы, то есть далее будет выполнено выражение, следующее сразу за циклом.
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)