Язык программирования PHP - [14]

Шрифт
Интервал

> if ($i % 2 == 0) print $i;

> // если число четное,

> // то печатаем его

>$i++; // увеличиваем счетчик на единицу

>}

>?>


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


>

>for ($i=0; $i<10; print $i, $i++)

>/* Если блок_выполнения не содержит команд

>или содержит только одну команду,

>фигурные скобки, в которые он заключен,

>можно опускать*/

>?>


foreach


Еще одна полезная конструкция. Она появилась только в PHP4 и предназначена исключительно для работы с массивами.


Синтаксис:


>foreach ($array as $value) {блок_выполнения}


либо


>foreach ($array as $key => $value)

> {блок_выполнения}


В первом случае формируется цикл по всем элементам массива, заданного переменной $array. На каждом шаге цикла значение текущего элемента массива записывается в переменную $value, и внутренний счетчик массива передвигается на единицу (так что на следующем шаге будет виден следующий элемент массива). Внутри блока_выполнения значение текущего элемента массива может быть получено с помощью переменной $value. Выполнение блока_выполнения происходит столько раз, сколько элементов в массиве $array.


Вторая форма записи в дополнение к перечисленному выше на каждом шаге цикла записывает ключ текущего элемента массива в переменную $key, которую тоже можно использовать в блоке_выполнения.


Когда foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый элемент.


>

>$names = array("Иван","Петр","Семен");

>foreach ($names as $val) {

> echo "Привет, $val
";

> // выведет всем приветствие

>}

>foreach ($names as $k => $val) {

> // кроме приветствия,

> // выведем номера в списке, т.е. ключи

> echo "Привет, $val !

> Ты в списке под номером $k
";

>}

>?>


Операторы передачи управления


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


Break


Оператор break заканчивает выполнение текущего цикла, будь то for, foreach, while, do..while или switch. break может использоваться с числовым аргументом, который говорит, работу скольких управляющих структур, содержащих его, нужно завершить.


>

>$i=1;

>while ($i) {

> $n = rand(1,10);

> // генерируем произвольное число

> // от 1 до 10

> echo "$i:$n ";

> // выводим номер итерации и

> // сгенерированное число

> if ($n==5) break;

>/* Если было сгенерировано число 5,

>то прекращаем работу цикла. В этом случае

>все, что находится после этой строчки

>внутри цикла, не будет выполнено */

> echo "Цикл работает
";

> $i++;

>}

>echo "
Число итераций цикла $i ";

>?>


Результатом работы этого скрипта будет примерно следующее:


>1:7 Цикл работает

>2:2 Цикл работает

>3:5

>Число итераций цикла 3


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


>

>$i=1;

>while ($i) {

> $n = rand(1,10);

> // генерируем произвольное число

> // от 1 до 10

> switch ($n){

> case 5:

> echo "

> Выход из switch (n=$n)";

> break 1;

> // прекращаем работу switch

> // (первого содержащего break цикла)

> case 10:

> echo "

> Выход из switch и

> while (n=$n)";

> break 2;

> // прекращаем работу switch и while

> // (двух содержащих break циклов)

> default:

> echo "switch работает (n=$n), ";

>}

>echo " while работает – шаг $i
";

>$i++;

>}

>echo "
Число итераций цикла $i ";

>?>


continue


Иногда нужно не полностью прекратить работу цикла, а только начать его новую итерацию. Оператор continue позволяет пропустить дальнейшие инструкции из блока_выполнения любого цикла и продолжить выполнение с нового круга. continue можно использовать с числовым аргументом, который указывает, сколько содержащих его управляющих конструкций должны завершить работу.


Заменим в примере предыдущего параграфа оператор break на continue. Кроме того, ограничим число шагов цикла четырьмя.


>

>$i=1;

>while ($i<4) {

> $n = rand(1,10);

> // генерируем произвольное число

> // от 1 до 10

> echo "$i:$n ";

> // выводим номер итерации и

> // сгенерированное число

> if ($n==5) {

> echo "Новая итерация ";

> continue;

>/* Если было сгенерировано число 5,

>то начинаем новую итерацию цикла,

>$i не увеличивается */

> }

> echo "Цикл работает
";

> $i++;

>}

>echo "
Число итераций цикла $i ";

>?>


Результатом работы этого скрипта будет


>1:10 Цикл работает

>2:5 Новая итерация 2:1 Цикл работает

>3:1 Цикл работает

>Число итераций цикла 4


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


Рекомендуем почитать
Сочинения гр. А. К. Толстого как педагогический материал. Часть 2. Эпические мотивы

«Лирика обладает одним несомненным преимуществом перед другими родами поэзии: она лучше всего освещает нам личный мир поэта, ту сферу, которую выделяет для него в широком Божьем мире его темперамент, обстановка, симпатии, верования; она показывает степень отзывчивости поэта; т.е. его способности переживать разнородные душевные состояния: она часто открывает нам уголки поэтической деятельности, где живут не оформившиеся еще образы, задатки для определенных фигур эпоса и драмы. В эпосе и драме образы становятся разнообразнее и пестрее, но вместе с тем славятся объективнее, особенно в драме…».


Уголовное право. Особенная часть

В книге кратко изложены ответы на основные вопросы темы «Уголовное право. Особенная часть». Издание поможет систематизировать знания, полученные на лекциях и семинарах, подготовиться к сдаче экзамена или зачета.Пособие адресовано студентам высших и средних образовательных учреждений, а также всем интересующимся данной тематикой.


Самоучитель Adobe After Effects 6.0

Обучение созданию профессиональных видеофильмов и обработки их на компьютере представлено в виде 12 уроков. Рассматривается, как с помощью программы Adobe After Effects можно редактировать и рисовать последовательность кадров, добавлять титры и заголовки, применять различные видеоэффекты, редактировать звуковое сопровождение фильма. Описывается процесс настройки прозрачности и наложения слоев видео для последующего экспорта фильма в различных форматах. Показываются способы создания анимации при масштабировании, поворотах и в движении с наложением титров и спецэффектов.


Финансовое право

В учебном пособии в краткой и доступной форме рассмотрены все основные вопросы, предусмотренные государственным образовательным стандартом и учебной программой по дисциплине «Финансовое право».Книга позволит быстро получить основные знания по предмету, а также качественно подготовиться к зачету и экзамену.Рекомендуется студентам, аспирантам и преподавателям по юридическим, экономическим и управленческим специальностям, а также сотрудникам банков.Автор книги, Шевчук Денис Александрович, имеет опыт преподавания различных дисциплин в ведущих ВУЗах Москвы (экономические, юридические, технические, гуманитарные), два высших образования (экономическое и юридическое), более 30 публикаций (статьи и книги), Член Союза Юристов Москвы, Член Союза Журналистов России, Член Союза Журналистов Москвы, Стипендиат Правительства РФ, опыт работы в банках, коммерческих и государственных структурах (в т.ч.


Следственные действия: психология, тактика, технология

Книга посвящена правовым, психологическим и криминалистическим основам следственных действий как процессуальных способов доказывания по уголовным делам. Рассмотрены общая характеристика следственного действия, психологические условия и приёмы повышения их эффективности, даны рекомендации по подготовке и проведению отдельных видов основных следственных действий, регламентируемых ныне действующим УПК РФ.Для работников правоохранительных органов, студентов, аспирантов, докторантов, профессорско-преподавательского состава юридических учебных заведений.


фгос  ответы

Содержащиеся в пособии контрольно-измерительные материалы (КИМы) для 5 класса, аналогичные материалам ЕГЭ, составлены в соответствии с программой общеобразовательных учреждений по русскому языку и учитывают возрастные особенности учащихся. В конце пособия даны ответы на все варианты тестов, предложены диктанты различных типов.Пособие адресовано учителям, ученикам, их родителям и всем, кому необходимо закрепить и систематизировать знания перед ЕГЭ.