52568.fb2 Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 21

Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 21

<?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>";

$str .= "<a

href='mailto:help@intuit.ru'>Страницу

создал $user</a>";

echo "$str";

}

Footer();

// вызываем функцию Footer(). Получим:

//Сегодня: 08.07.05

//Страницу создал Вася

echo "$user, $today";

// выведет запятую, так как

// эти переменные видны только

// внутри функции

?>

Кроме локальных файлов, с помощью include можно включать и внешние файлы, указывая их url-адреса. Данная возможность контролируется директивой url_fopen_wrappers в файле настроек PHP и по умолчанию, как правило, включена. Но в версиях PHP для Windows до PHP 4.3.0 эта возможность не поддерживается совсем, вне зависимости от url_fopen_wrappers.