Циклы в PHP: for, while, do…while
В PHP есть 4 основных цикла:
| Цикл | Описание | Когда использовать? |
for | Выполняет код фиксированное количество раз | Когда известно количество итераций |
while | Выполняет код, пока условие истинно | Когда количество итераций заранее неизвестно |
do...while | Сначала выполняет код, затем проверяет условие | Когда нужно выполнить код как минимум один раз |
foreach | Перебирает массивы и объекты | Когда нужно перебрать массив |
1️⃣ for – цикл с известным числом итераций
Используется, когда заранее известно, сколько раз нужно выполнить код.
for ($i = 1; $i <= 5; $i++) {
echo "Итерация: $i\\n";
}
Вывод:
Итерация: 1
Итерация: 2
Итерация: 3
Итерация: 4
Итерация: 5
Пример использования цикла for для перебора массива из 5 городов:
$cities = ["Москва", "Лондон", "Париж", "Берлин", "Токио"];
for ($i = 0; $i < count($cities); $i++) {
echo "Город: " . $cities[$i] . "\\n";
}
Вывод:
Город: Москва
Город: Лондон
Город: Париж
Город: Берлин
Город: Токио
2️⃣ while – выполняется, пока условие истинно
Используется, когда количество итераций заранее неизвестно.
$i = 1;
while ($i <= 5) {
echo "Итерация: $i\\n";
$i++;
}
📌 Если while получит false с самого начала, он не выполнится ни разу.
3️⃣ do...while – гарантирует хотя бы одну итерацию
Сначала выполняет код, затем проверяет условие.
$i = 1;
do {
echo "Итерация: $i\\n";
$i++;
} while ($i <= 5);
✅ Разница с while:
Если i сразу равно 10, то:
whileНЕ выполнится (так как10 > 5).do...whileвыполнится 1 раз.
4️⃣ foreach – цикл для перебора массивов
Лучший способ перебрать массив.
$fruits = ["🍎 Яблоко", "🍌 Банан", "🍊 Апельсин"];
foreach ($fruits as $fruit) {
echo "Фрукт: $fruit\\n";
}
Вывод:
Фрукт: 🍎 Яблоко
Фрукт: 🍌 Банан
Фрукт: 🍊 Апельсин
Перебор ассоциативного массива
$user = ["name" => "Иван", "age" => 25];
foreach ($user as $key => $value) {
echo "$key: $value\\n";
}
Вывод:
name: Иван
age: 25
Дополнительно: break и continue
📌 break – прерывает цикл
for ($i = 1; $i <= 10; $i++) {
if ($i == 5) break;
echo "Итерация: $i\\n";
}
Остановится на 4.
📌 continue – пропускает итерацию
for ($i = 1; $i <= 5; $i++) {
if ($i == 3) continue;
echo "Итерация: $i\\n";
}
Пропустит 3.
💡
break и continue работают во всех циклах в PHP!
Их можно использовать в for, while, do...while и foreach.
break и continue в foreach
Можно использовать в цикле foreach, например, если нужно пропустить или остановить выполнение на определенном элементе массива.
$cities = ["Москва", "Лондон", "Париж", "Берлин", "Токио"];
foreach ($cities as $city) {
if ($city == "Париж") {
continue; // Пропустит "Париж"
}
echo "Город: $city\\n";
}
Вывод:
Город: Москва
Город: Лондон
Город: Берлин
Город: Токио
break в foreach
foreach ($cities as $city) {
if ($city == "Берлин") {
break; // Остановит цикл на "Берлине"
}
echo "Город: $city\\n";
}
Вывод:
Город: Москва
Город: Лондон
Город: Париж
Цикл остановился на "Берлине".
Итог
| Цикл | Когда использовать? |
for | Когда известно количество итераций |
while | Когда условие неизвестное заранее |
do...while | Когда код должен выполниться хотя бы один раз |
foreach | Для перебора массивов |
| Оператор | Что делает? | Работает в |
break | Полностью завершает цикл | for, while, do...while, foreach |
continue | Пропускает текущую итерацию, но продолжает цикл | for, while, do...while, foreach |
Наиболее часто используется цикл foreach. for и while всречаются довольно редко.