PHP: немного об include и require

Эти директивы заменяются интерпретатором в процессе выполнения скрипта на содержимое файла, указанного в качестве параметра. Аналогией является директива #include в языке C. Синтаксис очень простой:

include "/folder/file.inc";
require "/folder/file.inc";

Кроме открытия локальных файлов, можно подключать файлы по сети используя вместо пути URL. Эта возможность может быть блокирована параметром конфигурации URL fopen wrappers.

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

Подключаемый файл выполняется как HTML-код. Таким образом, если вы хотите подключить php-скрипт, код должен быть обрамлен <?php и ?>.

Директивы require и include не являются функциями. Скорее они — специальные конструкции языка. Иногда include называют "почти-функцией", так как она может принимать значение, возвращаемое командой return во включаемом коде (при этом выполнение включаемого сценария прекращается).

Пример верного и неверного сравнения возвращаемого значения конструкцией include:

// Неправильно:
if (include ('file.php') == 'ok') {
   echo 'ok';
}

// Правильно:
if ((include 'file.php') == 'ok') {
   echo 'ok';
}

Дополнительно: include_once, require_once, get_included_files

Эти директивы работают аналогично include и require, но позволяют не допускать повторного включения файлов. Их использование предотвращает вторичное объявление функций (что в php недопустимо и вызывает ошибку).

Иногда бывает нужно узнать какие файлы были подключены вышеописанными директивами. Для этого в php есть две идентичные функции: get_included_files и get_required_files. Каждая из них возвращает массив с именами включенных файлов. Вот вам пример использования:

include 'file1.php';
require_once 'file2.php';
var_dump(get_included_files());

Результатом будет вывод такого вида:

array(3) {
  [0]=>
  string(21) "index.php"
  [1]=>
  string(21) "file1.php"
  [2]=>
  string(21) "file2.php"
}

Первый элемент возвращаемого массива - имя исходного скрипта.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <i> <strong> <b> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
CAPTCHA на основе изображений
Введите код с картинки