Операторы цикла (while, do..while, for) в PHP

Операторы цикла используются очень часто в любых языках программирования. Почти все задачи используют циклы, поэтому стоит обратить особое внимание на их изучение. В PHP существуют 4 вида циклов:

  • while (префиксная проверка условия);
  • do..while (постперфиксная проверка условия);
  • for;
  • foreach;

Первые три цикла похожи на стандартные циклы из языков программирования (С++, Pascal), а последний (foreach) на Perl. Рассмотрим в отдельности первые три операторов цикла, а последний будет рассмотрен в отдельном уроке. Отметим то, что каждый из циклов допускает вложенные циклы, то есть цикл внутри цикла.

Оператор цикла while в PHP

Довольно простой оператор цикла, синтаксис которого очень похож на синтаксис в других языка программирования.

Синтаксис while в PHP:

<?php
while (условие) //может быть сложное логическое условие
{
операторы;
}
?>

В условие стоит некое выражение, которое должно быть либо истинным (true), либо ложным (false). В случае истинного значения условия выполняются операторы, которые стоят в фигурных скобках. После чего опять происходит проверка условия на истинность. Если условие ложное, то программа не входит в цикл. В случае одного оператора фигурные скобки можно опустить.

Примечание: условие может состоять из очень многих выражений с использованием алгебры логики &&, ||, ! и т.д.

Стоит обратить внимание на то, что если в условие есть операторы, то они должны как-то изменяться, иначе цикл просто зациклиться.

Приведу простой пример на использование while:

<?php
$i=0;
while ($i<5) //пока i меньше 5
{
echo "i = ".$i."<br/>";
$i++;
}
?>

Выше описанный пример выведет следующий результат:

i = 0

i = 1

i = 2

i = 3

i = 4

Обратите внимание, что $i=5 не будет выведено, т.к. i увеличивается в самом конце цикла и поэтому как только он достигнет 5, то условие входа в цикл просто не выполнится.

Оператор break в PHP

Для немедленного прекращения цикла есть специальный оператор break. Данный оператор часто используется для выхода из бесконечного цикла, когда условие всегда истинно. Например, выше описанный пример можно было написать следующим образом:

<?php
$i=0;
while (true) //условие всегда истинно
{
echo "i =".$i."<br/>";
$i++;
if($i>=5) break;
}
?>

Результат будет такой же, как и в предыдущем примере.

Оператор continue в PHP

Оператор continue; прекращает текущую итерацию цикла, перемещаясь в начало, но не прекращает цикл полностью. Например:

<?php
$i=0;
while (true) //условие всегда истинно
{
echo "i =".$i."<br/>";
$i++;
if($i>=5) break;
else continue;
}
?>

Результат этого примера будет таким же, как и у предыдущих примеров.

Как показывает практика, операторы continue; и break; зачастую помогают реализовать сложные циклы.





Приведу ещё пример по использованию цикла while:

<?php
$i=0;
while ($i++<5) //постпрефиксная форма
{
echo "i =".$i."<br/>";
}
//результаты этих двух while будут разными
//из-за постпрефиксной и префиксной формы

$i=0;
while (++$i<5) //префиксная форма
{
echo "i =".$i."<br/>";
}
?>

Оператор цикла do…while в PHP

Оператор do…while очень похож на обычный while. Единственное их отличие во времени проверки условия. Цикл do…while будет выполнен хотя бы один раз, поскольку проверка происходит в самом конце. Синтаксис do…while:

<?php
do
{
операторы;
} while (условие);
?>

Рассмотрим пример:

<?php
$i=0;
do
{
echo "i =".$i."<br/>";
$i++;
} while($i<5);
?>

Его результат аналогичен первым рассмотренным примерам.

Стоит отметить, что операторы continue; и break; также могут применяться в таких циклах.

Оператор цикла for в PHP

Синтаксис оператора for следующий:

<?php
for(start; usloviya; shag)
{
операторы;
}
?>

В start происходит начальная инициализация переменных. В usloviya должны стоять одно или несколько условий завершения цикла. В shag заносятся операторы, которые выполняются в конце каждой итерации. Например:

<?php
for ($i=0; $i<5; $i++)
{
echo "i =".$i."<br/>";
}
?>

Результат выполнения этого цикла будет таким же как и у предыдущих примеров.

Большим плюсом использования for, что тело цикла может отсутствовать, а все необходимые операции выполнены в разделе shag. Для наглядности приведем пример:

<?php
for ($i=0; $i<5; print "i =".$i."<br/>", $i++);
?>

Замечание: в shag недопустимо использование функции echo.

Шаг цикла и условия могут быть самыми разнообразными. Например, можно написать не i++, а i+=5 (инкремент на 5).

Каждый из разделов цикла for может быть опущен, в таком случае получается бесконечный цикл:

<?php
for (;;)
{
операторы;
}
for (;uslovie;)
{
операторы;
}
for (;;shag)
{
операторы;
}
?>

for допускает использование continue; и break;.

На последок приведем пример двух эквивалентных конструкций цикла, но один будет for, а другой while

<?php
for (конструкция 1; конструкция 2; конструкция 3)
{
операторы;
}
?>

Эквивалентна следующей:

<?php
конструкция 1;
while (конструкция 2)
{
операторы;
конструкция 3;
}
?>




Читайте также:

• Использование методов GET и POST

• Типы данных в php

• Операции над числами в php

• Поразрядные операции в php

• Условный оператор if…else в php

• Переключатель switch в php

• Коды спецсимволов в HTML

• Как сделать сайт на PHP

← Перейти в каталог php уроков

Читайте также:

Copy Protected by Chetan's WP-Copyprotect.