Последнее обновление: 1.11.2015
Для совершения повторяемых действий в PHP, как и в других языках программирования, используются циклы. В PHP имеются следующие виды циклов:
Цикл for
Цикл for имеет следующее формальное определение:
For ([инициализация счетчика]; [условие]; [изменение счетчика]) { // действия }
Рассмотрим стандартный цикл for:
"; } ?>
Первая часть объявления цикла - $i = 1 - создает и инициализирует счетчик - переменную $i. И перед выполнением цикла его значение будет равно 1. По сути это то же самое, что и объявление переменной.
Вторая часть - условие, при котором будет выполняться цикл. В данном случае цикл будет выполняться, пока $i не достигнет 10.
Третья часть - приращение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: $i--.
В итоге блок цикла сработает 9 раз, пока значение $i не станет равным 10. И каждый раз это значение будет увеличиваться на 1. Каждое отдельное повторение цикла называется итерацией. Таким образом, в данном случае произойдет 9 итераций.
Цикл while
Цикл while проверяет истинность некоторого условия, и если условие истинно, то выполняются блок выражений цикла:
"; $counter++; } ?>
Если в блоке while всего одна инструкция, то фигурные скобки блока можно опустить:
"; ?>
Цикл do..while
Цикл do..while похож на цикл while , только теперь выполняется блок цикла, и только потом выполняется проверка условия. То есть даже если условие ложно, то блок цикла выполнится как минимум один раз:
"; $counter++; } while($counter<10) ?>
Операторы continue и break
Иногда возникает ситуация, когда требуется выйти из цикла, не дожидаясь его завершения. В этом случае мы можем воспользоваться оператором break:
80)
{
break;
}
echo "Квадрат числа $i равен $result
";
}
?>
И если вдруг результат операции окажется больше 80, то происходит выход из цикла.
Для управления циклами также применяется оператор continue . Он осуществляет переход к следующей итерации цикла:
"; } ?>
При выполнении программы, когда значение $i станет равным 5, произойдет переход к следующей итерации, а все остальные выражения, которые следуют после оператора continue выполняться не будут.
На уроке будут рассмотрены операторы цикла php: цикл while php, цикл foreach, цикл do while и цикл со счетчиком for. Будут разобраны примеры выхода из цикла (в php — break и continue)
Синтаксис:
while (условие){ оператор 1; оператор 2; ... }
Фигурные скобки обязательны в данной конструкции, если в цикле используется составной оператор: т.е. не один, а последовательность из нескольких операторов. Если оператор один, то скобки можно опустить.
Рис. 4.1. Пример использования цикла While
Результат:
1 2 3 4 5 6 7 8 9 10
Кроме того, можно использовать альтернативный синтаксис :
while (условие): оператор 1; оператор 2; ... endwhile;
Рис. 4.2. Пример альтернативного использования цикла While
Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22… Всего вывести 30 цифр. Использовать цикл While php
Решение:
1 2 3 4 5 6 | $sum = 1 ; while ($i <= 30 ) { $sum += 3 ; $i ++; echo ($sum . " " ) ; } |
$sum=1; while ($i<=30){ $sum+=3; $i++; echo ($sum." "); }
Результат:
4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Пример: Выводить степени двойки до значения 1024
Решение:
do { оператор 1; оператор 2; ... } while (условие);
Фигурные скобки обязательны в данной конструкции независимо от количества операторов цикла.
Рис. 4.3. Пример использования цикла Do While
Результат:
1 2 3 4 5 6 7 8 9 10
Пример: Выводить на экран ряд чисел 4 7 10 13 16 19 22.. . Всего вывести 30 цифр
Решение:
for (начальное значение счетчика; условие продолжения цикла; изменение счетчика на каждой итерации) { оператор 1; оператор 2; ...; }
- После служебного слова for в скобках через; обязательно указываются 3 параметра.
- Цикл For в php может быть и без фигурных скобок, если в теле цикла присутствует только один оператор.
Рис. 4.4. Пример использования цикла For
Результат:
Привет!
Привет!
Привет!
Привет!
Привет!
- В php для цикла for поддерживается альтернативный синтаксис:
for (начальное значение счетчика; условие продолжения цикла; изменение счетчика на каждой итерации) : оператор 1; оператор 2; ...; endfor;
Пример: Выводить в окно браузера числа от 1 до 10
Решение:
1 2 3 | for ($i = 1 ; $i <= 10 ; $i ++ ) { echo $i . " " ; } |
for ($i = 1; $i <= 10; $i ++) { echo $i." "; }
Результат:
Лабораторная работа:
Нарисовать таблицу умножения
Этап 1
- Создайте две числовые переменные cols и rows
- Присвойте созданным переменным произвольные значения в диапазоне от 1 до 10
Этап 2
- Используя циклы, отрисуйте таблицу умножения в виде HTML-таблицы на следующих условиях:
- Число столбцов должно быть равно значению переменной cols
- Число строк должно быть равно значению переменной rows
- Ячейки на пересечении столбцов и строк должны содержать значения, являющиеся произведением порядковых номеров столбца и строки
Этап 3
- Значения в ячейках первой строки и первого столбца должны быть отрисованы полужирным шрифтом
- Фоновый цвет ячеек первой строки и первого столбца должен быть отличным от фонового цвета таблицы. Сохраните файл.
Дополните код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
", $tr * $td, " | "; }else{ echo "", $tr * $td, " | "; } } echo ""; } ?>
---|
Количество элементов массива
Для удобства работы с массивами часто используется функция count()
Функция возвращает кол-во элементов массива
count ($masiv ) ;
Пример: Дан массив, состоящий из названий времен года. Необходимо вывести все элементы массива неизвестного размера
Решение:
1 2 3 4 5 6 7 8 9 | $mas
[$n
]"
.
" " ; } ?> |
"; } ?>
Результат:
Цикл Foreach в php
Обход массива наиболее выгодным образом происходит при помощи итерационного цикла foreach , позаимствованного из синтаксиса языка Perl.
Рис. 4.6. Пример использования цикла Foreach, полный вариант
Результат:
Массив с индексом 0 равен 1
Массив с индексом 1 равен 2
Массив с индексом 2 равен 3
Массив с индексом 3 равен 4
Пример: Выводить индексы и значения массива user , в котором записаны данные об Иване
Решение:
1 2 3 4 5 6 7 8 | $user [ "name" ] = "Ivan" ; $user [ "login" ] = "root" ; $user [ "password" ] = "p@ssword" ; $user = "312-34-85" ; foreach ($user as $index => $value ) { echo "Индекс $index равен $value " ; } |
$user["name"]="Ivan"; $user["login"]="root"; $user["password"]="p@ssword"; $user="312-34-85"; foreach($user as $index =>$value){ echo "Индекс $index равен $value"; }
Результат:
Пример:
- Выводить приветствие для имен из списка
- Кроме приветствия выводить номера в списке
1 2 3 4 5 6 7 8 9 10 | $names
=
array
("Иван"
,
"Петр"
,
"Семен"
)
;
// 1 задание
foreach
($names
as
$val
)
{
echo
"Привет, $val
" ; } // 2 задание foreach ($names as $k => $val ) { echo "Привет, $val ! Ты в списке под номером $k " ; } |
$names = array("Иван","Петр","Семен");
// 1 задание
foreach ($names as $val) {
echo "Привет, $val
";
}
// 2 задание
foreach ($names as $k => $val) {
echo "Привет, $val !
Ты в списке под номером $k
";
}
Результат:
Задание php 4_3: Дан массив, состоящий из названий дней недели. Вывести элементы, используя конструкцию foreach .
Дополнительно:
вывод должен быть в формате: понедельник
– день 1
-й
Лабораторная работа:
Нарисовать (добавить) навигационное меню на странице, типа:
<a href = "contact.php" > Contact</ a > |
Contact
используя массив в качестве структуры меню.
Алгоритм:
- Создайте ассоциативный массив $menu
- Заполните массив, соблюдая следующие условия:
- Индексом элемента массива является пункт меню, например: Home , About , Contact …
- Значением элемента массива является имя файла, на который будет указывать ссылка, например: index.php , about.php , contact.html …
Эту статью я пишу для новичков, которые только начинают изучать PHP . Расскажу я в этой статье о всевозможных циклах в PHP , так как данной статьи у меня на сайте не было. Были только , но, несмотря на общую схожесть, это всё-таки не то. В PHP есть 4 вида циклов .
- WHILE
- DO-WHILE
- FOREACH
Разберём их по порядку и начнём с самого популярного цикла в PHP (да и не только в PHP ) - это цикл FOR . Синтаксис у данного цикла следующий:
For(Выражение_1; Выражение_2; Выражение_3) {
операторы
}
Выражение_1 выполняется сразу же и безоговорочно, Выражение_3 выполняется после каждой итерации цикла. Выражение_2 - это проверка того, нужно ли продолжать цикл. Если результат выражения будет true , то начинается следующая итерация цикла, а если false , то цикл прекращает свою работу.
Следующий тип цикла - это WHILE . Это более простой тип циклов, синтаксис которого следующий:
While(Выражение) {
операторы
}
Пока Выражение возвращает true , цикл будет работать, а как только появится false , он прекращает свою работу.
Цикл DO-WHILE очень похож на WHILE , но с одним отличием. Условие выхода проверяется после выполнения итерации, а не до. Таким образом, данный цикл будет выполняться всегда хотя бы 1 раз. И вот синтаксис цикла DO-WHILE :
Do{
операторы
}while(Условие);
И, наконец, последний тип циклов - это foreach , который служит только для перебора массивов и объектов . Он необходим, когда ключами у массива являются не числа (которые легко перебрать через тот же FOR ), а строки. Синтаксис цикла FOREACH следующий:
Foreach($array_or_object as $key => $value) {
операторы
}
И, наконец, давайте применим все 4 типа циклов в PHP для перебора массивов :
$list = array(5, 2, 3, 10, 12, 10);
$array = array("a" => 1, "x" => 10, "m" => -5);
for ($i = 0; $i < count($list); $i++) {
echo $list[$i]."; ";
}
echo "
";
$i = 0;
while ($i < count($list)) {
echo $list[$i]."; ";
$i++;
}
echo "
";
$i = 0;
do {
echo $list[$i]."; ";
$i++;
}while($i < count($list));
echo "
";
foreach ($array as $key => $value) {
echo "$key = $value; ";
}
?>
Все эти циклы обязан знать наизусть любой программист, поэтому если вдруг что-то непонятно, перечитайте ещё раз, либо задайте вопрос в комментариях, и я постараюсь ответить.
Операторы цикла используются очень часто в любых языках программирования. Почти все задачи используют циклы, поэтому стоит обратить особое внимание на их изучение. В PHP существуют 4 вида циклов:
- while (префиксная проверка условия);
- do..while (постперфиксная проверка условия);
- for ;
- foreach ;
Первые три цикла похожи на стандартные циклы из языков программирования (С++, Pascal), а последний (foreach) на Perl. Рассмотрим в отдельности первые три операторов цикла, а последний будет рассмотрен в отдельном уроке. Отметим то, что каждый из циклов допускает вложенные циклы, то есть цикл внутри цикла.
Оператор цикла while в PHP
Довольно простой оператор цикла, синтаксис которого очень похож на синтаксис в других языка программирования.
Синтаксис while в PHP:
//может быть сложное логическое условие { операторы; } ?>
В условие стоит некое выражение, которое должно быть либо истинным (true), либо ложным (false). В случае истинного значения условия выполняются операторы, которые стоят в фигурных скобках. После чего опять происходит проверка условия на истинность. Если условие ложное, то программа не входит в цикл. В случае одного оператора фигурные скобки можно опустить.
Примечание : условие может состоять из очень многих выражений с использованием алгебры логики &&, ||, ! и т.д.
Стоит обратить внимание на то, что если в условие есть операторы, то они должны как-то изменяться, иначе цикл просто зациклиться.
Приведу простой пример на использование while :
"; $i++; } ?>
Выше описанный пример выведет следующий результат:
i = 0
i = 1
i = 2
i = 3
i = 4
Обратите внимание, что $i=5 не будет выведено, т.к. i увеличивается в самом конце цикла и поэтому как только он достигнет 5, то условие входа в цикл просто не выполнится.
Оператор break в PHP
Для немедленного прекращения цикла есть специальный оператор break . Данный оператор часто используется для выхода из бесконечного цикла, когда условие всегда истинно. Например, выше описанный пример можно было написать следующим образом:
//условие всегда истинно { echo "i =".$i."
"; $i++; if($i>=5) break; } ?>
Результат будет такой же, как и в предыдущем примере.
Оператор continue в PHP
Оператор continue; прекращает текущую итерацию цикла, перемещаясь в начало, но не прекращает цикл полностью. Например:
//условие всегда истинно { echo "i =".$i."
"; $i++; if($i>=5) break; else continue; } ?>
Результат этого примера будет таким же, как и у предыдущих примеров.
Как показывает практика, операторы continue; и break; зачастую помогают реализовать сложные циклы.
Приведу ещё пример по использованию цикла while :
"; } //результаты этих двух while будут разными //из-за постпрефиксной и префиксной формы $i=0; while (++$i //префиксная форма { echo "i =".$i."
"; } ?>
Оператор цикла do...while в PHP
Оператор do...while очень похож на обычный while . Единственное их отличие во времени проверки условия. Цикл do...while будет выполнен хотя бы один раз, поскольку проверка происходит в самом конце. Синтаксис do...while :
Рассмотрим пример:
"; $i++; } while($i
Его результат аналогичен первым рассмотренным примерам.
Стоит отметить, что операторы continue; и break; также могут применяться в таких циклах.
Оператор цикла for в PHP
Синтаксис оператора for следующий:
В start происходит начальная инициализация переменных. В usloviya должны стоять одно или несколько условий завершения цикла. В shag заносятся операторы, которые выполняются в конце каждой итерации. Например:
"; } ?>
Результат выполнения этого цикла будет таким же как и у предыдущих примеров.
Большим плюсом использования for , что тело цикла может отсутствовать, а все необходимые операции выполнены в разделе shag . Для наглядности приведем пример:
", $i++); ?>
Замечание : в shag недопустимо использование функции echo .
Шаг цикла и условия могут быть самыми разнообразными. Например, можно написать не i++, а i+=5 (инкремент на 5).
Каждый из разделов цикла for может быть опущен, в таком случае получается бесконечный цикл:
for допускает использование continue; и break; .
На последок приведем пример двух эквивалентных конструкций цикла, но один будет for, а другой while
Эквивалентна следующей:
Синтаксис цикла for выглядит следующим образом:
Данный цикл состоит из ключевого слова for , за которым следуют круглые скобки, содержащие внутри три выражения, разделенных точками с запятой. Он имеет следующий порядок выполнения:
- В начале цикла выполняется инициализирующее выражение, оно всегда вычисляется (выполняется) только один раз в самом начале.
- Далее следует условное выражение. Перед началом каждой итерации вычисляется значение условного выражения (условие выполнения), если оно принимает значение TRUE, то тело цикла выполняется, если оно принимает значение FALSE , выполнение цикла завершается. Если при первой проверке условие оказывается ложным, тело цикла не выполнится ни разу.
- В самом конце, после выполнения действий в теле цикла обрабатывается последнее выражение (следующее выражение после условия). В данном случае это инкрементирующее выражение - оно увеличивает с помощью инкремента значение переменной-счетчика.
Простой пример цикла for:
На самом деле цикл for является почти универсальным, поскольку он допускает самые разные варианты своего применения.
Цикл for без частей заголовка
Каждое из выражений в заголовке цикла for может отсутствовать.
Если инициализация не нужна или происходит в другом месте, инициализирующее выражение не нужно. Перепишем немного предыдущий пример:
Обратите внимание, символ точки с запятой обязателен, так как означает отсутствующее выражение. Отсутствие выражения условия эквивалентно расположению в условии значения TRUE .
В этом случае цикл будет выполняться бесконечно. Если отсутствует инкрементирующее выражение, то оно должно быть в теле цикла иначе цикл будет выполняться бесконечно.
Не стоит забывать о том, что любое из трех выражений или все сразу можно опустить, но разделительные точки с запятой (;) следует ставить всегда.
Несколько выражений в заголовке цикла for
В заголовке цикла for каждое выражение разделенное точкой с запятой может содержать по несколько выражений, разделенных запятыми. Поэтому можно использовать выражения любой сложности.
"; } ?>
Если в условии выполнения используется несколько выражений, разделенных запятыми, то они вычисляются все, но результат берется из последнего.
Вложенные циклы
Так же как и условные операторы, циклы могут быть вложенными. Простой пример с одним уровнем вложенности:
";
for ($j = 0; $j < 2; $j++) {
echo "Вложенный цикл.
";
}
}
?>
Значение слова неудачный
Обзор Samsung Galaxy A7 (2017): не боится воды и экономии Стоит ли покупать samsung a7
Делаем бэкап прошивки на андроиде
Как настроить файл подкачки?
Установка режима совместимости в Windows