52568.fb2
<?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.