Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

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

Оператор include предназначен для вставки в скрипт на PHP содержимого из внешнего файла, вставка выполняется в то место, где оператор include встретился. Внимание! Считается, что содержимое внешнего файла – это код серверной страницы на HTML, а не PHP. PHP во внешнем файле должен задаваться парой тегов <?php  ?>. Например, файл: ext1.inc со следующим содержимым:

Этот текст попадет на страницу! <?php $var2 = 15; $var2 += $var1; ?> Этот текст тоже попадет на страницу! 

Встраиваем в скрипт при помощи оператора include файл ext1.inc:

<?php $var1 = 10; include( "ext1.inc" ); echo $var2; ?> 

В результате будет выполнен следующий код:

<?php $var1 = 10; ?> Этот текст попадет на страницу! <?php $var2 = 15; $var2 += $var1; ?> Этот текст тоже попадет на страницу! <?php echo $var2; ?> 

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

<?php $var1 = 10; if($var1 == 11) {   include( "ext1.inc" ); } echo $var2; ?> 

интерпретатор PHP выдаст ошибку, поскольку в строке echo $var2 переменная $var2 не будет определена (оператор include( "ext1.inc" ); не выполнялся).

Примеры разного синтаксиса оператора include:

<?php // имя файла в двойных кавычках include( "ext1.inc" ); // имя файла в одинарных кавычках include 'ext1.inc'; $file = "ext1.inc"; // имя файла - значение переменной include $file; ?> 

Если файл, заданный в операторе include, не обнаружен или при выполнении скрипта из этого файла возникла ошибка, то интерпретатор выдает предупреждение об ошибке и продолжает выполнение основного скрипта, содержащего оператор include. Если оператор include встречается в цикле, он будет выполнен столько раз, сколько есть итераций в цикле.

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

Основное отличие оператора require от оператора include состоит в том, что он в любом случае вставляет текст файла в код (аналог обработки препроцессором в C) до момента непосредственного вызова оператора. Минусы такого подхода: код из внешнего файла вставляется всегда, а не по мере надобности, что влияет на производительность. Плюс: код вставляется только один раз, т.е. в цикле не будет обращения к оператору require на каждой итерации.

Кроме того, оператор require при возникновении ошибки (файл не обнаружен или скрипт в нем содержит ошибки) завершает работу основного скрипта.

Файлы, заданные в операторах include и require, ищутся следующим образом:

  • Сначала ищем файл относительно корневого каталога (корневой каталог задается параметром doc_root в файле php.ini). Например, если имя файла /myfiles/f1.inc, а doc_root = "/var/www", то искать будем файл /var/www/myfiles/f1.inc.

  • Если не нашли, то ищем файл относительно каталога текущего исполняемого скрипта, где содержится инструкция include или require.

  • Если не нашли, то ищем файл в каталогах, определенных параметром include_path в файле php.ini.