vvz.nw.ru К занятиям по PHP

<< Включение файлов ( инструкции require и include )

Инструкции require и include имеют одинаковый формат:

require $fileName;
include $fileName;
require_once $fileName;
include_once $fileName;

где $fileName - строка, представляющая собой имя файла. Результатом применения этих инструкций будет включение содержимого файла с указанным именем в текущий документ. Включаемый файл может содержать просто текст, текст с HTML-разметкой, операторы PHP. Смысл применения этих инструкций: рациональное описание фрагментов, многократно повторяющихся в ряде документов сайта. Примером может служить HTML-код "шапки" или описание набора PHP-функций, использующихся в ряде web-страниц.

Применение этих, казалось бы, похожих инструкций имеет существенные отличия.

Включение инструкцией require происходит при запуске PHP-программы, потом происходит синтаксический анализ всего документа, оптимизация и перевод в байт-код, затем программа исполняется. Если включаемый код содержит ошибки, при отладке вы о них своевременно узнаете.

В случае инструкции include включение происходит во время выполнения программы. Если включаемый код содержит ошибки, о них станет известно только во время исполнения программы. Представляется, что применять инструкцию include следует, если содержимое включаемых файлов формируется динамически во время исполнения программы до вызова инструкции включения. В остальных случаях рациональнее применять инструкцию require.

Инструкции require_once и include_once имеют тот же смысл и, к тому же, следят за тем, чтобы включение было однократным. В сложных сценариях с подключаемыми библиотеками всегда есть опасность повторного включения (скажем, если включаемые файлы сами имеют включения). Применение require_once и include_once позволяет решить эту проблему.

Далее - элементарный пример с инструкцией include, включающей шапку (файл header.inc) и подвал (файл footer.inc). Включение проведено следующим образом:

<html>
 <head>
  <title>Test include - require</title>
<link rel="stylesheet" href="qq.css" type="text/css"> </head>  <body> <? include 'header.inc';?> <div id="content"> Файлы header.inc и footer.inc включены с помощью инструкции include.<br> Абсолютно то же самое в данном случае получится и с инструкцией require. </div> <? include 'footer.inc'; ?>  </body> </html>

Ниже в iframe-ах приведены оба включаемых файла и результет.

header.inc footer.inc результирующий документ с двумя включенными файлами



vvz.nw.ru  > PHP