English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP базовый курс

PHP продвинутый курс

PHP & MySQL

PHP справочник

php include и require (включение файлов)

В этом руководстве вы узнаете, как включать и оценивать файлы в PHP.

Включение PHP-файла в другой PHP-файл

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

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

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

include("path/to/filename"); 
или
include "path/to/filename";
require("path/to/filename"); 
или
require "path/to/filename";

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

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

<!DOCTYPE html>
<html>
<head>
    <title>Основные курсы</title>
</head>
<?php include "header.php";?>
<?php include "menu.php";?>
    <h1>Добро пожаловать на наш сайт (ru.oldtoolbag.com)!</h1>
    <p>Здесь вы найдете много полезной информации.</p>
<?php include "footer.php";?>
</html>

Разница между include и require

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

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

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

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

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

Если不小心 включите один и тот же файл несколько раз в коде (обычнофункцияиликлассФайл) может привести к конфликту. Чтобы предотвратить это, 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 "my_functions.php";
// Вызов функции
multiplySelf(2); // Результат: 4
echo "<br>";
 
// Вновь включение файла
require "my_functions.php";
// Вызов функции
multiplySelf(5); // Не выполняется
?>

Когда вы запустите вышеуказанный скрипт, вы увидите сообщение об ошибке, подобное следующему:“Критическая ошибка: Не можно заново объявить multiplySelf()”Причина возникновения такой ситуации заключается в том, что файл 'my_functions.php' был включен дважды, что означает, что функция multiplySelf() была определена дважды, что привело к остановке выполнения скрипта PHP и возникновению критической ошибки. Теперь, перепишите пример выше с использованием require_once.

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

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