Курс "Язык программирования 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 относительно текущей рабочей директории.