require
аналогично include, за исключением того, что в случае возникновения ошибки он также выдаст фатальную ошибку уровня E_COMPILE_ERROR
. Другими словами, он остановит выполнение скрипта, тогда как include только выдал бы предупреждение E_WARNING
, которое позволило бы скрипту продолжить выполнение.
include ¶
(PHP 4, PHP 5, PHP 7, PHP 8)
Выражение include
включает и выполняет указанный файл.
Документация ниже также относится к выражению require.
Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include
попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция 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 для получения информации о том, как эта функция работает.