Урок 21 из 29
В прогрессе

21php Управляющие конструкции ¶

Урок
Материалы

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

 

include ¶

(PHP 4, PHP 5, PHP 7, PHP 8)

Выражение include включает и выполняет указанный файл.

Документация ниже также относится к выражению require.

Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_pathinclude попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст E_WARNING, если не сможет найти файл; поведение отлично от require, который выдаст E_ERROR.

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

Если путь указан — абсолютный (начинающийся с буквы диска или с \ в Windows или с / в Unix/Linux системах) или относительно текущей директории (начинающийся с . или ..) — include_path будет проигнорирован вообще. Например, если имя файла начинается с ../, парсер будет искать в родительской директории запрошенный файл.

Для дополнительной информации о том, как PHP обрабатывает включаемые файлы и включаемые пути, смотрите документацию для директивы include_path.

Когда файл включается, его код наследует ту же область видимости переменных, что и строка, на которой произошло включение. Все переменные, доступные на этой строке во включающем файле, будут также доступны во включаемом файле. Однако все функции и классы, объявленные во включаемом файле, имеют глобальную область видимости.

Пример #1 Простой пример include

vars.php
<?php

$color = 'зелёное';
$fruit = 'яблоко';

?>

test.php
<?php

echo "Одно $color $fruit"; // Одно

include 'vars.php';

echo "Одно $color $fruit"; // Одно зелёное яблоко

?>

require_once ¶

(PHP 4, PHP 5, PHP 7, PHP 8)

Выражение require_once аналогично require за исключением того, что PHP проверит, включался ли уже данный файл, и если да, не будет включать его ещё раз.

Смотрите документацию include_once для информации по поведению _once и чем он отличается от таких же функций, без _once.

 

include_once ¶

(PHP 4, PHP 5, PHP 7, PHP 8)

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

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

Смотрите документацию по include для получения информации о том, как эта функция работает.