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

Эти функции помогут вам сэкономить много времени — просто сохраните блок кода в отдельном файле и подключите его куда угодно, используя операторы include() и require() вместо того, чтобы набирать весь блок кода несколько раз. Типичный пример — подключение файлов header, footer и menu на все страницы веб-сайта.

Базовый синтаксис операторов include() и require() может быть задан следующим образом:

include("path/to/filename"); -Or- include "path/to/filename";
require("path/to/filename"); -Or- require "path/to/filename";

Как и операторы print и echo, вы можете опустить круглые скобки при использовании операторов include и require, как показано выше.

В следующем примере показано, как подключить отдельные файлы header.php, footer.php и menu.php на всех страницах вашего веб-сайта. Используя этот метод, вы можете обновлять все страницы веб-сайта сразу, внося изменения только в один файл, что избавляет от множества повторяющихся действий.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Zolin Digital</title>
</head>
<body>
<?php include "header.php"; ?>
<?php include "menu.php"; ?>
    <h1>Добро пожаловать на наш сайт!</h1>
    <p>Здесь вы найдете много полезной информации.</p>
<?php include "footer.php"; ?>
</body>
</html>

Разница между операторами include() и require()

Вы можете подумать: если мы можем включать файлы с помощью оператора include(), тогда зачем нам require(). Обычно оператор require() работает как include().

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

<?php require "my_variables.php"; ?>
<?php require "my_functions.php"; ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title><?php displayTitle($home_page); ?></title>
</head>
<body>
<?php include "header.php"; ?>
<?php include "menu.php"; ?>
    <h1>Добро пожаловать на наш сайт!</h1>
    <p>Здесь вы найдете много полезной информации.</p>
<?php include "footer.php"; ?>
</body>
</html>

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

Операторы include_once и require_once

Если вы случайно включите один и тот же файл (обычно файлы функций или классов) в код более одного раза с помощью операторов include и require, это может вызвать конфликты. Чтобы предотвратить эту ситуацию, PHP предоставляет операторы include_once и require_once. Эти операторы ведут себя так же, как операторы include и require, за одним исключением.

Операторы include_once и require_once будут включать файл только один раз, даже если будет предложено включить его второй раз, т.е. если указанный файл уже был включен в предыдущий оператор, файл не включается снова. Чтобы лучше понять, как это работает, давайте рассмотрим пример. Предположим, у нас есть файл my_functions.php со следующим кодом:

<?php
function multiplySelf($var) {
    $var *= $var; // умножаем переменную на саму себя
    echo $var;
}
?>

Вот PHP-скрипт, в который мы включили файл my_functions.php.

<?php
// Подключаем файл через require
require "my_functions.php";
// Вызываем функцию
multiplySelf(2); // Выводит: 4
echo "<br>";

// Подключаем файл через require
require "my_functions.php";
// Вызываем функцию
multiplySelf(5); // Функция не выполняется
?>

Когда вы запустите приведенный выше скрипт, вы увидите сообщение об ошибке примерно такого рода: «Fatal error: Cannot redeclare multiplySelf(). Это происходит из-за того, что my_functions.php подключен дважды и функция multiplySelf() определяется дважды, что заставило PHP остановить выполнение скрипта и сгенерировать фатальную ошибку. Теперь перепишем приведенный выше пример с помощью require_once.

<?php
// Подключаем файл через require_once
require_once "my_functions.php";
// Вызываем функцию
multiplySelf(2); // Выводит: 4
echo "<br>";

// Подключаем файл через require_once
require_once "my_functions.php";
// Вызываем функцию
multiplySelf(5); // Выводит: 25
?>

Как видите, при использовании require_once вместо require скрипт работает так, как мы того ожидаем.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.