Циклы в PHP
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали ссылки в PHP. В данной статье я бы хотел рассказать о различных циклах в PHP. Всего их существует 4 вида:
- Итерационный цикл for
- Цикл с предусловием
- Цикл с постусловием
- Цикл foreach
Давайте сразу на примерах разберем все циклы. Пусть будет такая задача: необходимо для 10 элементов вывести квадраты числа.
1) Итерационный цикл for:
<?php for ($i = 1; $i <=10; $i++) { echo $i * $i."</br>"; } ?>
В данном цикле можно использовать несколько условий. Пусть необходимо проверить, если элемент равен 6, то больше ничего не выводить (оператор break пока не знаем). Можно написать так:
<?php for ($i = 1, $j = 1; $i <=10, $j <= 6; $i++, $j++) { echo $i * $i."</br>"; } ?>
2) Цикл с предусловием:
<?php $i = 1; while ($i <= 10) { echo $i * $i."</br>"; $i++; } ?>
В данном случае также будут выведены квадраты первых 10 чисел. Данный цикл называется циклом с предусловием, потому что проверка условия идёт в начале, в отличие от следующего цикла.
3) Цикл с постусловием:
<?php $i = 1; do { echo $i * $i."</br>"; $i++; } while ($i <= 10) ?>
В данном случае проверка условия осуществляется уже после выполнения блока кода, и данный блок кода выполнится 1 раз в любом случае.
4) Цикл foreach. Данный цикл предназначен для перебора значений массива и появился только в четвертой версии языка PHP. Массив — это некоторый набор ключей, каждому из которых соответствует некоторое значение. Более подробно массивы будут разбираться в следующих статьях. Рекомендую подписаться на обновления, чтобы не пропустить.
Синтаксис данного цикла следующий:
foreach (массив as $key=>$value) { блок операторов }
$key представляет собой ключ, $value — значение. Данная конструкция не изменяет исходный массив. Чтобы иметь возможность изменять исходный массив, необходимо использовать ссылочный тип:
foreach (массив as $key=>&$value) { блок операторов }
Давайте с помощью данного цикла выведем содержимое всех переменных окружения (массив $_SERVER):
<?php foreach ($_SERVER as $key=>$value) { echo "<b>$key</b> => <i>$value</i></br>"; } ?>
Обязательно наберите данный пример и посмотрите, как всё работает.
Очень часто возникает ситуация, когда необходимо прервать выполнения цикла. Для этого необходимо использовать конструкцию break. У данной конструкции есть один необязательный параметр. По умолчанию данный параметр равен 1, т.е. мы прерываем выполнение текущего цикла. Давайте разберем такой пример: создадим 2 итерационных цикла от 1 до 5 и, если число будет равно 5, то выведем число. В данном случае, если мы будем использовать просто break, то число 5 будет выведено 5 раз. Если же мы напишем break(2), то только один раз:
<?php for ($i = 1; $i <= 5; $i++) { for ($j = 1; $j <= 5; $j++) { if ($j == 5) { echo "Число найдено и равно $j </br>"; break; //запустите скрипт, а затем напишите break(2); } } } ?>
Данный оператор удобно использовать для циклов поиска. Как только мы нашли то, что искали — сразу завершаем цикл.
Оператор continue, наоборот, пропускает текущую итерацию цикла и переходит уже к следующей. Также в скобках можно указать уровень вложенности цикла.
Пример не буду приводить, дам домашнее задание на этот оператор:
Для чисел от 1 до 10 необходимо выводить их квадраты. Если квадрат числа равен 9 и 49, то данные числа выводить не нужно.
Остался ещё один вид циклов — это конструкция switch case. Описание данной конструкции и пример есть для языка Javascript и C#, поэтому тут приводить не буду, потому что всё аналогично.
В данной статье вы узнали, что такое циклы в PHP.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.