English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете, как включать и оценивать файлы в 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>
Вы, возможно, задаетесь вопросом, если мы можем использовать включение () для включения файлов, то почему нам нужно 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().
Если不小心 включите один и тот же файл несколько раз в коде (обычнофункцияиликлассФайл) может привести к конфликту. Чтобы предотвратить это, 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 позволяет скрипту работать как ожидается.