Чтение онлайн

ЖАНРЫ

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

Савельева Нина Владимировна

Шрифт:

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

<?php

$i=1;

while ($i<4) {

$n = rand(1,10);

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

// от 1 до 10

echo "$i:$n ";

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

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

if ($n==5) {

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

continue;

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

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

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

}

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

$i++;

}

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

?>

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

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

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

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

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

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

<?php

$i=1;

while ($i<4) {

$n = rand(1,10);

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

// от 1 до 10

if ($n!==5) {

echo "$i:$n <br>";

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

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

$i++;

}

}

?>

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

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

include

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

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

include $file_name;

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

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

params.inc

<?php

$user = "Вася";

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

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

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

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

?>

include.php

<?php

include ("params.inc");

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

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

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

include("params.inc") */

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

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

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

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

?>

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

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

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

– Если файл не найден, то поиск производится в include_path относительно директории текущего скрипта.

– Параметр include_path, определяемый в файле настроек PHP, задает имена директорий, в которых нужно искать включаемые файлы.

Например, ваш include_path это . (то есть текущая директория), текущая рабочая директория это /www/. В основной файл include.php вы включаете файл my_dir/a.php, который в свою очередь включает b.php. Тогда парсер первым делом ищет файл b.php в директории /www/, и если такового нет, то в директории /www/my_dir/.

Если файл включен с помощью include, то содержащийся в нем код наследует область видимости переменных строки, где появился include. Любые переменные вызванного файла будут доступны в вызывающем файле с этой строки и далее. Соответственно, если include появляется внутри функции вызывающего файла, то код, содержащийся в вызываемом файле, будет вести себя так, как будто он был определен внутри функции. Таким образом, он унаследует область видимости этой функции. Хотя мы и не знакомились еще с понятием функции, все же приводим здесь эти сведения в расчете на интуитивное его понимание.

Пример 3.10. Пусть файл для вставки params.inc останется таким же, а include.php будет следующим:

<?php

function Footer{

// объявляем функцию с именем Footer

include ("params.inc");

/* включаем файл params.inc.

Теперь его переменными можно пользоваться,

но только внутри функции */

$str = "Сегодня: $today <br>";

Поделиться с друзьями: