Курс "Язык программирования PHP" - страница 18

стр.


>

>$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 на проверку истинности выражения:


>

>$i=1;

>while ($i<4) {

> $n = rand(1,10);

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

> // от 1 до 10

> if ($n!==5) {

> echo "$i:$n
";

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

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

> $i++;

> }

>}

>?>


В PHP существует одна особенность использования оператора continue – в конструкциях switch он работает так же, как и break. Если switch находится внутри цикла и нужно начать новую итерацию цикла, следует использовать continue 2.


Операторы включения


include


Оператор include позволяет включать код, содержащийся в указанном файле, и выполнять его столько раз, сколько программа встречает этот оператор. Включение может производиться любым из перечисленных способов:


>include 'имя_файла';

>include $file_name;

>include ("имя_файла");


Пример 3.9. Пусть в файле params.inc у нас хранится набор каких-то параметров и функций. Каждый раз, когда нам нужно будет использовать эти параметры (функции), мы будем вставлять в текст нашей основной программы команду include 'params.inc'.


>params.inc

>

>$user = "Вася";

>$today = date("d.m.y");

>/* функция date() возвращает дату

>и время (здесь – дату в формате

>день.месяц.год) */

>?>

>include.php

>

>include ("params.inc");

>/* переменные $user и $today заданы в файле

>params.inc. Здесь мы тоже можем ими

>пользоваться благодаря команде

>include("params.inc") */

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

> // выведет "Привет, Вася!"

>echo "Сегодня $today";

> // выведет, например, "Сегодня 7.07.05"

>?>


Заметим, что использование оператора include эквивалентно простой вставке содержательной части файла params.inc в код программы include.php. Может быть, тогда можно было в params.inc записать простой текст без всяких тегов, указывающих на то, что это php-код? Нельзя! Дело в том, что в момент вставки файла происходит переключение из режима обработки PHP в режим HTML. Поэтому код внутри включаемого файла, который нужно обработать как PHP-скрипт, должен быть заключен в соответствующие теги.


Поиск файла для вставки происходит по следующим правилам.


- Сначала ведется поиск файла в include_path относительно текущей рабочей директории.