Обе конструкции используются для включения и выполнения внешних PHP-файлов в текущий скрипт, но имеют принципиальные отличия в поведении при ошибках.
include
include 'file.php';
require
require 'file.php';
| Критерий | include | require |
|---|---|---|
| Ошибка загрузки | Выдает Warning | Выдает Fatal Error |
| Выполнение скрипта | Продолжается | Прерывается |
| Возвращаемое значение | Возвращает FALSE при ошибке | Возвращает TRUE/FALSE |
include - если файл не найден:
include 'non_existent.php'; // Warning, но скрипт продолжит работу
echo 'Это сообщение будет выведено';
require - если файл не найден:
require 'non_existent.php'; // Fatal Error, скрипт остановится
echo 'Это сообщение НЕ будет выведено';
Используйте require для:
require 'config.php';
require 'database_connection.php';
Используйте include для:
include 'optional_widget.php';
include 'user_comments.php'; // Если комментариев нет, файл может отсутствовать
include_once / require_once
require_once 'functions.php';
include_once 'header.php';
Возвращаемые значения
$result = include 'template.php';
_once версии медленнее из-за проверки на уже включенные файлы_once там, где возможноПравильная структура приложения:
// index.php
require 'core/init.php'; // Без этого приложение не работает
include 'templates/header.php'; // Шаблон может быть изменен
// core/init.php
require_once 'config.php';
require_once 'database.php';
Обработка отсутствующих компонентов:
if (file_exists('local_config.php')) {
include 'local_config.php'; // Дополнительные локальные настройки
}
используйте require для обязательных файлов, где ошибка должна прервать выполнение, и include для необязательных компонентов. Версии _once применяйте для предотвращения множественного включения файлов с определениями. Выбор между ними зависит от важности подключаемого файла для работы приложения.