Jak include, tak require importují (a spustí) obsah jiného PHP souboru do aktuálního. Jediný rozdíl je v tom, jak zpracují selhání: require způsobí fatální chybu, pokud soubor chybí, zatímco include pouze vypíše varování a pokračuje.
<?php
include "config.php"; // if missing → WARNING, script CONTINUES
require "database.php"; // if missing → FATAL ERROR, script STOPS
include → file missing → emits a Warning, execution continues (file's code skipped)
require → file missing → throws a Fatal Error, execution HALTS
Verejte require pro soubory, bez kterých se aplikace nemůže spustit (jádro tříd, kritická konfigurace, nastavení databáze) — chcete, aby se zastavila, pokud chybí. Používejte include pro volitelné soubory (např. šablona postranního panelu), kde chybějící soubor by neměl zhroutit stránku.
require_once "functions.php"; // include the file ONLY if not already included
include_once "helper.php";
require_once/include_once importují soubor pouze pokud již nebyl importován — nezbytné pro prevenci chyb "cannot redeclare function/class" když může být soubor importován vícekrát (např. definice třídy používané více soubory).
// included files share the SAME scope and can define functions, classes, variables
// config.php:
$dbHost = "localhost";
// main.php:
require "config.php";
echo $dbHost; // "localhost" — the variable is available
// ❌ old style — manually requiring every class file
require_once "User.php";
require_once "Order.php";
// ✅ modern — Composer AUTOLOADING loads classes on demand automatically
require "vendor/autoload.php"; // one line; classes load when used (PSR-4)
$user = new User(); // User.php loaded automatically
V moderním PHP zřídka používáte ruční require pro třídy — Composer autoloader je načítá na vyžádání. Přesto jednou používáte require "vendor/autoload.php" pro inicializaci.
Porozumění include vs require je základní, ale důležité znalosti PHP — jsou to způsoby, jak si PHP soubory sdílí kód, a rozdíl má vliv na správnost.
Klíčový bod je chování při selhání: require pro nezbytné soubory (aby aplikace selhala rychle a jasně, pokud kritický soubor chybí) a include pro volitelné (aby chybějící nekritický soubor nezhroutil stránku).
Znalost variant _once je prakticky nezbytná pro prevenci běžné chyby "cannot redeclare" z náhodného importu definice třídy nebo funkce dvakrát.
Rovněž důležité je porozumění modernímu kontextu: ačkoli jsou tyto konstrukce základní, moderní PHP spoléhá na Composer autoloading (načítání tříd na vyžádání) místo manuálního require každého souboru, takže v současném kódu většinou jen jednou require "vendor/autoload.php" a zbývajícímu autoloading svěříte.
Znalost jak mechaniky include/require (a kdy je vhodný každý mód selhání), tak jak moderní autoloading nahrazuje ruční include je každodenní znalostí při práci s PHP codebase starými i novými.