Una pratica comune è quella di separare il codice di un programma scritto in PHP in file diversi e quindi chiamarli l’uno o l’altro quando è necessario per una particolare applicazione. Così, si può ridurre significativamente la dimensione del codice da caricare e impedire di caricare quelli che non abbiamo bisogno.

Per includere il codice di un file in un altro con PHP è possibile utilizzare una di queste funzioni:

<?php 
include("percorso/script.php");
include_once("percorso/script.php");
require("percorso/script.php");
require_once("percorso/script.php");
?>
Se mettete una di queste sentenze in qualsiasi parte di uno script PHP verrà inserito il codice nel file nel luogo in cui si trova la dichiarazione d’invocazione o la chiamata. Questo già si sapeva, vero? Quello che voglio chiarire in questo post non è quello che fanno queste funzioni, ma la differenza che c’è tra di loro. Sappiamo già che il codice include il file chiamato, ma qual è la differenza tra l’utilizzo di include() o require()? Dovrei usare include() o include_once()?.
require() vs include()
Entrambe le funzioni inseriscono il codice in un file all’interno di un altro. La differenza tra l’utilizzo di require() o di include() può essere dedotto dal loro nome: require() stabilisce che il codice del file richiamato è necessario, cioè, è obbligatorio per il funzionamento del programma. Quindi, se il file specificato nel require() non esiste salta fuori un “PHP Fatal error” e il programma PHP si ferma.
Al contrario, se il file cui fa riferimento la funzione include() non viene trovato, viene fuori un errore di tipo “Warning” e il programma continuerà a funzionare (anche se come conseguenza della non inclusione del codice, lo script potrebbe non funzionare correttamente, oppure sì, a seconda del la situazione).
A causa di queste differenze tra include() e require() è più comune utilizzare la funzione require(), perché è naturale che se si chiama il codice da un altro file è perché ne abbiamo bisogno. Tuttavia, è possibile riservare la chiamata alla funzione require() per richiamare i files che contiene il codice che gestisce la logica di applicazione scritta in PHP, cioè, utilizzare require() per richiamare il codice necessario, dove altrimenti il programma genererebbe errori fatali e quindi interromperebbe l’esecuzione del programma. La funzione include() può essere utilizzata per chiamare dei files il cui codice non influenza altre parti del applicazione e, pertanto, non influenziano il resto del programma.
Per esempio, se abbiamo uno script PHP per mostrare gli articoli sarebbe meglio usare require() e non include(); per caricare il codice che fa delle query al database per ottenere gli articoli da visualizzare. Mentre si può usare include() per richiamare i files contenenti codice html come il pié di pagina o un’altra parte di qualche altro template. In altre parole, se non riusciamo a caricare il codice che gestisce le informazioni dell’articolo da mostrare non avrebbe senso e sarebbe meglio usare il require() che non trovando il file il programma viene interrotto; d’altra parte, se non esiste un codice html per il pié di pagina, le informazioni importanti della pagina, che è l’articolo, non vengono affettate e si può scegliere di utilizzare la funzione include().
require()/include() vs require_once()/include_once()
Le versioni require_once() e include_once() funzionano nello stesso modo come descritto sopra, eccetto che per utilizzando la versione _once impedisce il caricamento del file più di una volta. Se includiamo lo stesso codice più di una volta si rischia di ridichiarare le variabili, le funzioni o le classi. Si potrebbe pensare, quindi, che è meglio utilizzare sempre require_once() o include_once() invece di require() e include(). Tuttavia, dobbiamo sapere che le versioni _once sono più pesanti e consumano più risorse, quindi bisognerebbe usarle solo quando necessario.

Il file script-a.php richiede i files script-b.php e script-c.php. Vale a dire, nel file script-a.php sarà scritto:

<?php 
require("script-b.php");
require("script-c.php");
?>
In un altro caso, il file script-b.php richiede il file script-c.php. Siccome il file script-b.php può essere eseguito da altre fonti diverse da script-a.php, allora, nel file script-b.php dovremmo scrivere:
<?php 
//verifica se il file non è già stato caricato
require_once("script-c.php"); 
?>
Ora sapete le principali differenze tra l’utilizzo delle funzioni require e include di PHP e la sua versione require_once() e include_once(). Spero che queste nozioni siano utili al momento di scegliere la funzione necessaria per l’esecuzione e il funzionamento dell’applicazione.
Similari
Restrizioni per caricare un file con PHP
12% Php
Dalle foto di famiglia ai documenti aziendali, file uploads potenzia molte delle applicazioni web più importanti. [expand title=”L’oggetto $_FILES” startwrap=”” endwrap=”” excerpt=”⤽” swapexcerpt=”” expanded=”true” trigcla…
Caricare i files con jQuery
11% JQuery
jQuery File Upload è un widget di jQuery per tutti i tipi di progetti web che vogliono offrire la possibilità di caricare dei files nel proprio sito. Questo widget fornisce un interessante supporto per caricare i files in …
Hai bisogno di uno script asincrono?
10% Ajax
Hai bisogno di uno script? Scopri AjaxRain.com
AjaxRain.com ha proseguito la sua costante crescita aggiungendo impress…
Le 10 funzionalità principali in HTML5
9% Html5
L’HTML5 posside dei nuovi tag da usare per ottenere comportamenti precisi sulla pagina web. In questo post, si elencano i 10 nuovi, non per importanza ma per il vantaggio funzionale che si possono otenere rapidamente senza…
Il framework jQuery e jQuery-plugins
8% Plugins
jQuery è una ben nota libreria Javascript Web 2.0 light-weight cross-browser, sviluppato da un team guidato da John Resig. jQuery è costruito sulla cima di Sizzle, che è un motore per i selettori CSS scritto in Javascript …