Il funzionamento di require e require_once è del tutto simile alle loro contro parti include.
La sola differenza che li distingue è dovuta al fatto che quando il file non viene trovato, la require genera un errore terminando l’esecuzione della pagina. E’ utile usare questa funzione al posto della include quando il codice che risiede nella pagina richiesta è di vitale importanza all’esecuzione dello script, come ad esempio un file in cui sono memorizzate delle password.

<?php
 
/* richiede un file html */
 
require ('file-richiesto.html');
 
/* genera un errore perché il file non esiste
   terminando cosi l'esecuzione della pagina
*/
 
require_once ('/percorso/sbagliato\al/file.password');
 
?>

Per concludere la parte che riguarda include e require volevo spiegare come queste funzioni aprono i vari file.
Il parametro in ingresso, come abbiamo già detto, è il nome del file. Questa stringa può contenere semplicemente il nome del file o altrimenti il nome con un percorso completo oppure relativo della cartella in cui si trova. Quando il percorso non viene definito nella stringa, il PHP procede alla ricerca del file in un elenco di directory separate dal simbolo : che è memorizzato nella variabile include_path.

A volte è utile poter modificare l’ordine oppure aggiungere delle directory a questa variabile in modo da non dover scrivere ogni volta il percorso.
Per chi volesse approfondire, consiglio di dare un’occhiata alla funzione ini_set, oppure nelle versioni piú recenti set_include_path.

<?php
 
/* aggiunge /lib/scripts all'include path */
 
set_include_path (get_include_path () . ':' . '/lib/scripts');
 
?>

vicius