Архіви позначок: require

include vs require

Поширте інформацію:

Інструкції PHP include та require дають можливість розділити текст програми на кілька файлів.

Формат інструкції include:

include назва_файла;

Зустрівши в сценарії таку інструкцію, інтеррпретатор PHP під час виконання сценарію підставить замість неї вміст файла назва_файла.

Формат інструкції require:

require назва_файла;

Зустрівши в сценарії таку інструкцію, інтеррпретатор PHP під час запуску сценарію  (саме запуску, а не виконання) підставить замість неї вміст файла назва_файла.

Яке має значення – під час запуску, чи під час виконання?

Розглянемо приклад. Нехай маємо 10 текстових файлів з іменами file0.php, file1.php,…,file9.php Кожен файл містить десяткову цифру 0,1,…,9 (по одній цифрі в кожному файлі). Тоді код

for ($i = 0; $i < 10; $i++) {
include "file$i.php";
}

виведе в браузер 10 цифр: “0123456789”.

А код

for ($i = 0; $i < 10; $i++) {
require "file$i.php";
}

виведе в браузер 10 нулів: “0000000000”.

Зауваження. Під час виконання інструкції include інтерпретатор PHP призупиняє виконання основної програми до того часу, поки не буде відтрансльований вміст файла, що включається. Це може негативно вплинути на швидкодію програми. Тому бажано використовувати всюди, де можна, використовувати require замість include.

Інструкції одноразового включення

Обидві інструкції мають “одноразові” аналоги:

include_once назва_файла;
require_once назва_файла;

відповідно. Особливість їх роботи полягає в тому, що вказані в цих інструкціях файли включаються в програму лише раз. Тобто, якщо програмі повторно зустрінеться “одноразова” інструкція включення того самого файлу, то ця, повторна, інструкція не виконає нічого.  Це може бути використано для запобігання ситуації, коли якась бібліотека підключається до програми спочатку напряму, а тоді ще один раз  (зайвий) з якоїсь іншої бібліотеки.