Конструкция foreach является вариацией цикла for и применяется для итераций на массивах. Существуют две различные версии цикла foreach.
Базовый синтаксис обеих версий цикла foreach показан ниже.
foreach ($array as $value)
{
оператор
}
foreach ($array as $key => $value)
{
оператор
}
Первый тип цикла foreach используется для итераций по массиву, обозначенному как $array. Во время каждой итерации цикла текущее значение массива присваивается переменной $value, и счетчик цикла увеличивается на единицу. Цикл продолжается, пока foreach не достигнет последнего элемента или верхней границы заданного массива. Во время каждой итерации значение переменной $value можно использовать любым способом, но исходное значение массива не изменяется. Чтобы изменить реальное значение массива, необходимо добавить символ "&". Любые изменения, сделанные в &value, будут присвоены элементу массива с текущим индексом.
Следующий пример демонстрирует, как цикл foreach применяется для итераций по значениям массива.
<?php
$my_array = array('red','green','blue');
echo "Различные цвета включают: ";
foreach($my_array as $value)
{
$colors = $value . " ";
echo $colors;
}
?>
Во время каждой итерации имя цвета, связанное с текущим элементом массива, присваивается переменной $colors. Также добавляется одиночный пробел между соседними именами цветов для целей вывода. Когда цикл достигает конца массива, создается следующий вывод.
Различные цвета включают: red green blue
Вторая форма цикла обеспечивает такие же функции, что и первая, но дополнительно присваивает на каждом шаге итерации индекс текущего элемента массива или ключ переменной $key. В предыдущем примере массив $my_array содержит три элемента: $my_array[0] = "red", $my_array[1] = "green", и $my_array[2] = "blue". В то время как переменная $value содержит значения элементов массива red, green и blue, переменная $key содержит индексы элементов массива 0, 1, и 2.
Лекция 6. Повторное использование кода и функции
Возможность повторного использования существующего кода является очень важной, так как может сберечь время и деньги и способствовать согласованности. Предположим, что сайт Web содержит текстовое меню, которое повторяется на каждой странице. Вместо повторного кодирования меню будет значительно легче закодировать его один раз и динамически включать содержимое меню на каждую из отдельных страниц Web. Это можно сделать с помощью так называемых серверных включаемых файлов.
Включаемые файлы могут содержать любой код XHTML или PHP и обычно сохраняются с расширением .inc, хотя можно использовать также расширения .php, .txt, или .htm. Содержимое включаемого файла кодируется один раз и включается в любое необходимое количество страниц PHP. Если во включаемом файле делается изменение, то обновление автоматически отражается на всех страницах PHP, ссылающихся на включаемый файл.
Ниже показан пример типичного включаемого файла, содержащего информацию о заголовке страницы.
Header.inc
<h3> Welcome to WebBooks.Com </h3>
Этот пример показывает включаемый файл с именем header.inc. Файл содержит текст "Welcome to WebBooks.Com", окруженный тегом XHTML <h3>. Он создает заголовок третьего уровня, который можно теперь включать на все страницы, которые составляют сайт WebBooks.
После создания включаемого файла, его можно включить в страницу PHP с помощью одной из следующих функций:
require(имя_файла) – включает и проверяет указанный файл
include(имя_файла) – другой способ подключения файлов
В следующем примере файл header.inc включается в существующую страницу PHP:
home.php
<?php require('header.inc'); echo "<p>This is the WebBooks site...</p>"; ?>
Функция require() вызывает файл header.inc и проверяет содержимое файла. Содержимое затем выводится, как если бы оно было частью страницы home.php. В этом примере функция require() кодируется вверху страницы, так как она содержит информацию заголовка. Оператор require() можно, однако, включить в любом месте документа PHP. Расположение функции require() определяет, где будет выводиться содержимое файла в контексте страницы PHP.
Welcome to WebBooks.Com This is the WebBooks site...
Важно отметить, что при использовании включаемых файлов, которые содержат конфиденциальную информацию, такую, как пароли или информацию о пользователе, файлы должны сохраняться с использованием расширения .php, а не .inc или другого нестандартного расширения. Файлы, которые применяют нестандартные расширения файлов, могут загружаться с сервера Web, а их содержимое можно просматривать как обычный текст. Использование расширения .php гарантирует, что клиент не сможет увидеть исходный код, сервер вернет только код XHTML.