Oba include in require uvozita (in izvedeta) vsebino druge PHP datoteke v trenutno datoteko. Edina razlika je v načinu obravnavanja napak: require povzroči usodno napako, če datoteka manjka, medtem ko include le izda opozorilo in nadaljuje.
<?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
Uporabite require za datoteke, brez katerih se aplikacija ne more izvajati (jederne razrede, kritične konfiguracije, nastavitev baze podatkov) — želite si, da se program trdo ustavi, če jih ni. Uporabite include za opcijske datoteke (npr. predlogo stranske vrstice), kjer manjkajoča datoteka ne bi smela zrušiti strani.
require_once "functions.php"; // include the file ONLY if not already included
include_once "helper.php";
require_once/include_once uvozita datoteko samo, če še ni bila — bistveno je, da se izognete napakam "cannot redeclare function/class", ko je datoteka mogoče vključena večkrat (npr. definicija razreda, ki jo vključi več datotek).
// 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 moderni PHP redko uporabljate ročno require za razrede — Composejev nalagalnik jih po potrebi naloži. Še vedno pa enkrat uporabite require "vendor/autoload.php", da ga inicializirate.
Razumevanje razlike med include in require je osnovna, vendar pomembna PHP znanja — to je način, kako PHP datoteke delijo kodo, in razlika je bistven za pravilnost.
Klučni punkt je obnašanje pri napakah: require za bistvene datoteke (da se aplikacija hitro in jasno sesuje, če manjka kritična datoteka) in include za opcijske datoteke (da manjkajoča nekritična datoteka ne zruši strani).
Znanje variant _once je praktično nujno, da se izognete pogosti napaki "cannot redeclare", ki nastane pri slučajnem dvakratnem vključevanju definicije razreda ali funkcije.
Enako pomembno je razumevanje modernega konteksta: čeprav so te konstrukcije temeljne, moderna PHP uporablja samodejno nalaganje prek Composerja (nalaganje razredov po potrebi) namesto ročnega zahtevanja vsake datoteke, zato se v trenutni kodi večinoma samo enkrat izvede require "vendor/autoload.php" in pustite, da samodejno nalaganje naredi ostalo.
Znanje tako mehanike include/require (in kdaj je primerna vsaka vrsta napake) kot tudi kako sodobno samodejno nalaganje nadomesti ročno vključevanje, je osnovno znanje za delo s PHP bazami kode starega in novega časa.