В PHP есть 4 способа подключить один файл в другой:
1️⃣ include
2️⃣ require
3️⃣ include_once
4️⃣ require_once
Они позволяют разделять код на модули и избегать дублирования.
1️⃣ include – подключает файл, но не критично при ошибке
include "header.php";
echo "Основное содержимое.";
Если файл header.php не найден, PHP выдаст Warning, но код продолжит выполняться.
2️⃣ require – подключает файл, но прерывает выполнение при ошибке
require "config.php";
echo "Эта строка выполнится только если `config.php` найден.";
❌ Если config.php не найден, PHP выдаст Fatal error и скрипт остановится.
Использовать require лучше для файлов, без которых скрипт не должен работать (например, конфигурация, БД).
3️⃣ include_once – подключает файл только один раз
include_once "functions.php";
include_once "functions.php"; // Второй раз файл НЕ будет подключён
Предотвращает повторное подключение одного и того же файла.
4️⃣ require_once – подключает файл только один раз, но с Fatal error при ошибке
require_once "config.php";
require_once "config.php"; // Второй раз НЕ подключится
Полезно для подключения файлов с функциями, настройками, классами – исключает дублирование.
📌 Разница между include и require
| Функция | Что делает? | Если файл не найден? | Подключает повторно? |
include | Подключает файл | ⚠ Warning (скрипт продолжит работать) | ✅ Да |
require | Подключает файл | ❌ Fatal error (скрипт остановится) | ✅ Да |
include_once | Подключает файл только один раз | ⚠ Warning | ❌ Нет |
require_once | Подключает файл только один раз | ❌ Fatal error | ❌ Нет |
📌 Где использовать?
require – если без файла код не должен работать (например, конфиг, автозагрузка).
include – если файл не обязателен, но желателен (например, header.php).
require_once – если нужно гарантированно подключить файл только один раз (например, файлы с классами).
include_once – для дополнительных модулей, которые могут быть не обязательны.
🙋♂️ Для старта стоит запомнить два сценария:
// Подключение функциональных файлов
require('config.php');
// Подключение шаблонов
include('header.tpl');
.tpl это расширение для файлов с шаблонами. Ничем не отличается от .php файлов, кроме расширения. Расширение .tpl (template) - указывает на то что это файл с шаблоном части страницы.