Обе конструкции используются для включения и выполнения внешних 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
применяйте для предотвращения множественного включения файлов с определениями. Выбор между ними зависит от важности подключаемого файла для работы приложения.