Циклы foreach, for, while в PHP
Продолжаем писать наш конспект. Сегодня рассмотрим циклы foreach, for, while в PHP. Цикл используют, чтобы участок кода выполнился подряд несколько раз .
Содержание статьи
Цикл foreach
Используется для прохода по всем элементам массива.
Синтаксис: foreach($arr as $elem) {код, который будет выполняться для каждого элемента}
где $arr — массив, $elem — переменная в которую лягут элементы массива.
Примеры:
<?php $arr = [1, 2, 3, 4, 5]; // массив foreach ($arr as $elem) { echo $elem.'<br>'; } ?>Выведет в столбик все элементы массива с 1 до 5.
А сейчас возведем каждый элемент в квадрат:
<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { echo $elem*$elem . '<br>'; } ?>
Выведет в столбик квадраты элементов массива.
Если массив ассоциативный, то после as следует указать: $ключ => $элемент.
Давайте при каждом проходе цикла выведем ключ массива и соответствующий ему элемент через дефис:
<?php $arr = ['a'=>1, 'b'=>2, 'c'=>3, 'd'=>4, 'e'=>5]; //ассоциативный массив foreach ($arr as $key=>$elem) { echo $key.'-'.$elem; } ?>
выведет: ‘a-1’, ‘b-2’, ‘c-3’ и т.д.
Если не нужны ключи, то $ключ=> можно не писать:
<?php $arr = ['a'=>1, 'b'=>2, 'c'=>3, 'd'=>4, 'e'=>5]; foreach ($arr as $elem) { echo $elem; } ?>
Цикл foreach имеет альтернативный синтаксис: Фигурных скобок нет, а цикл закрыт командой endforeach:
<?php $arr = ['a'=>1, 'b'=>2, 'c'=>3, 'd'=>4, 'e'=>5]; foreach ($arr as $elem): //внимание на двоеточие! echo $elem; endforeach; ?>
Как и в конструкции if-else, можно закрыть скобки PHP внутри цикла, вписать что-то на HTML и открыть скобки – HTML код повторится столько раз, сколько проходов сделает цикл:
<?php $arr = ['a'=>1, 'b'=>2, 'c'=>3, 'd'=>4, 'e'=>5]; foreach ($arr as $elem) { ?> <p>здесь html-код в который еще и php вставлен{<?php echo $elem; ?>} можно и так</p> <?php } ?>
Цикл while
Выполняется, пока верно выражение в скобках, синтаксис:
<?php
while ( условие ) {
выполняемый код;
}
?>
При каждом проходе цикл проверяет условие в круглых скобках:
если верно — выполняется код в фигурных скобках,
если нет — цикл завершается.
Выведем с помощью while столбец от одного до пяти.
В условии поставим $i <= 5 — т.е. пока $i будет меньше или равна пяти — цикл работает, как только станет 6 — цикл закончит свою работу.
Изначально $i =1. При каждом проходе будем выводить $i и затем оператором ++каждый раз увеличивать ее на единицу.
<?php $i = 1; while ($i <= 5) { echo $i.'<br>'; $i++; } ?>
Переменную $i, называют счетчиком цикла и используют для выполнения цикла нужное количество раз. Для счетчиков используют буквы i, j и k.
Бесконечный цикл!!!
Цикл while может выполняться бесконечно (это приведет к зависанию скрипта!), если передать ему условие, которое никогда не станет ложным. Например, так:
$var = true;
while ($var === true) {nnn
}
Написанный здесь код будет выполняться ‘вечно’ — это приведет к зависанию!
Цикл for
Цикл for — альтернатива while. Синтаксис:
<?php
for ( команда перед циклом; условие окончания цикла; команда после прохода цикла ) {
тело цикла
}
?>
Выведем числа от 0 до 9 циклом for. В начале цикла $i =0, цикл выводим пока $i < 10,
после прохода к $i прибавляем единицу:
<?php for ($i = 0; $i < 10; $i++) { echo $i.'<br>'; } ?>
Если необходимо выполнить несколько команд в круглых скобках — пишем их через запятую:
<?php
for ($i = 0, $j = 2; $i < 10; $i++, $j++, $i = $i + $j) {
}
?>
До начала цикла выполнятся две команды: $i = 0, $j = 2, а после каждого прохода — целых три: $i++, $j++, $i = $i + $j.
Инструкция break
Иногда необходимо прервать выполнение цикла досрочно, в случае с циклом foreach до того, как цикл пройдет все элементы массива.
Например, оборвем цикл, как только встретим число 3:
<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) break; //выходим из цикла else echo $elem; } ?>
Если очень кратко о циклах foreach, for, while в PHP , все. Не забудьте повторить Условные операторы if else, switch case
Всего комментариев: 0