Introduzione
Quando inizi a scrivere progetti in PHP, presto ti accorgi che scrivere tutto in un unico file non è sostenibile. Per questo motivo, PHP offre strumenti nativi per importare codice da altri file in modo modulare, chiaro e riutilizzabile.
In questa guida scoprirai come usare include
, require
, include_once
e require_once
per strutturare al meglio i tuoi progetti, con esempi pratici e differenze fondamentali tra queste funzioni.

Perché includere file esterni?
- Riutilizzo del codice (es. header, footer, connessione DB)
- Miglior organizzazione e leggibilità
- Separazione della logica (es. funzioni, configurazioni)
- Manutenzione facilitata: cambi un file e si riflette ovunque
Sintassi base
include 'header.php'; require 'config.php'; include_once 'menu.php'; require_once 'functions.php';
Differenze tra include
e require
Funzione | Cosa fa | Comportamento in caso di errore |
---|---|---|
include |
Inserisce un file esterno | Mostra warning, ma continua |
require |
Come include , ma obbligatorio |
Mostra fatal error, script si ferma |
include_once |
Inserisce solo se non è già stato incluso | Warning se duplicato, ma continua |
require_once |
Come sopra, ma obbligatorio | Fatal error se duplicato |
/project ├── index.php ├── header.php ├── footer.php ├── functions.php
index.php
<?php require_once 'functions.php'; include 'header.php'; echo "<p>Contenuto principale della pagina</p>"; include 'footer.php'; ?>
header.php
<!DOCTYPE html> <html> <head><title>Sito PHP</title></head> <body><header><h1>Benvenuto</h1></header>
footer.php
<footer><p>© 2025 Il Mio Sito</p></footer> </body> </html>
Uso comune: file di configurazione
// config.php $db_host = 'localhost'; $db_user = 'root'; $db_pass = ''; $db_name = 'miosito'; // conness.php require 'config.php'; $conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
Best practice
- require_once per file critici (es. connessioni, librerie)
- Usa
include_once
per elementi visivi (es. header, menu) - Evita percorsi relativi sbagliati con
__DIR__
o$_SERVER['DOCUMENT_ROOT']
- Commenta ogni file incluso per tracciarne la funzione
Errori comuni
- include per file essenziali: se mancano, il sito continua ma si rompe
- Dimenticare
once
: causa duplicazioni di funzioni o variabili - Percorsi errati nei progetti multi-cartella
