Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast_uchebnika_po_WWW_Okonchat_variant...doc
Скачиваний:
31
Добавлен:
27.09.2019
Размер:
6.06 Mб
Скачать

2.2.9.4. Частные случаи использования цикла for в php

Рассмотрение возможных модификаций оператора цикла вынесено в отдельный раздел, так как их использование требует применения особых операторов, в частности break и continue.

1. Каждое из выражений 1-3 может быть пустым.

Если выражение 2 является пустым, то это означает, что цикл должен выполняться неопределённое время, так как в этом случае PHP считает это выражение всегда истинным. Иногда это бывает полезно.

В этом случае выйти из цикла можно с помощью оператора break.

Оператор break досрочно (то есть, без проверки стандартного условия выхода из цикла) прерывает выполнение любого оператора цикла (а не только оператора for). Естественно, что для этого потребуется использование какого-либо другого условия. Таким образом, цикл становится более гибким. Оператор break передаёт управление первой следующей за телом цикла строке (Пример 2 -33).

Пример 2‑33

<?php

for ($i=0; ; $i++)

{

if ($i>=10) break;

// если $i больше или равно 10, то прекращаем работу цикла

if ($i % 2 == 0) echo "\$i = $i <br>";

// если число четное, то печатаем его

}

echo "Выход из цикла по оператору break";

$x = 5;

echo " Начальное значение \$x перед входом в цикл равно $x <br>";

for (; ; $x += 2)

{

echo "\$x = $x <br>";

if ($x == 15)

break; // Выйти из цикла for;

}

echo "Выход из цикла по оператору break <br>";

//Вариант альтернативно1 формы оператора

$x = 7;

echo " Начальное значение \$x перед входом в цикл равно $x <br>";

for (; ; $x +=2) :

echo "\$x = $x <br>";

if ($x == 17) :

break; //Выйти из цикла for

endif;

endfor;

echo "Выход из цикла по оператору break <br>"

?>

2. Приращение переменной цикла может осуществляться в зависимости от некоторого условия, определяемого в цикле. В этом случае приращение не должно указываться в управляющем выражении. Ниже приводится пример, в котором все выражения (в том числе и выражение приращения) являются пустыми (Пример 2 -34).

Пример 2‑34

<?php

//Печать чётных чисел в примере с пустыми выражениями в операторе for

$i=2; //задаем начальное значение счетчика

for ( ; ; )

{

if ($i>=10) break;

//если $i больше или равно 10 то прекращаем работу цикла

if ($i % 2 == 0) echo "\$i = $i <br>";

//если число четное, увеличиваем счетчик на единицу

$i++;

}

?>

3. Использование оператора continue в операторах цикла.

Наконец, в операторе for предусмотрена возможность досрочного (то есть, без выполнения всех команд цикла) перехода к началу цикла (к первой строке цикла, содержащей управляющие выражения). Его применение продемонстрировано в примере Пример 2 -35.

Пример 2‑35

<?php

echo 'Использование оператора continue',"<br>";

$value = 1;

for ($value = -2; $value < 3; $value++)

{

if($value == 0)

{

continue;

}

echo "1 / $value = ", 1/$value, "<br>";

}

?>

В этом примере выводятся на экран числа, обратные к счётчику цикла. Для предотвращения деления на ноль, что вызвало бы сообщение о математической ошибке, с помощью оператора continue осуществляется отмена данного варианта.

Цикл FOREACH (Цикл ДЛЯ КАЖДОГО)

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

Первая форма:

foreach (массив as Имя_Переменной1)

{

Итерационный блок

}

Вторая форма:

foreach (массив as Имя_Переменной2 => Имя_Переменной1)

{

Итерационный блок

}

Итерационные блоки – это совокупность операторов, для которых в каждой итерации будут определены значения соответствующие номеру итерации:

  • Имя_Переменной1= значению очередного элемента массива и

  • Имя_Переменной2= значению ключа очередного элемента

В приводимом ниже примере (Пример 2-17), переменная 1 с именем $value используется для вывода элементов массива $arr на печать в первой форме оператора foreach.

Массивы состоят из отдельных элементов, и цикл foreach используется для перебора всех элементов массива без использования счётчика цикла.