Include e Require:
I costrutti
Include e
Require permettono di inserire file esterni in una pagina web.
Questi costrutti rivestono un importantissimo ruolo nel linguaggio PHP. Tramite il loro utilizzo il webmaster può suddividere le pagine in più parti, per poi richiamarle quando necessita.
Il vantaggio sussiste nel fatto di dover modificare soltanto una pagina web e non tutte le pagine che contengono quel codice.
Immaginiamo di dover inserire un menù in tutte le pagine del nostro sito. Se in futuro vogliamo modificarlo dovremo modificare tutte le pagine, se al contrario il menù è formato da una singola pagina inclusa in tutte le altre pagine basterà modificare solo una pagina per modificare tutto il sito.
Le applicazioni di queste due funzioni non sono solo pratiche, infatti tramite l'inclusione di pagine all'interno di cicli è possibile creare pagine dinamiche con il minimo di sforzo.
Per la costruzione di script complessi è importante sapere che le pagine inserite con i costrutti
include e
require possono contenere altri
include o
require.
Include:
<? include("nome_file.php"); ?>
La sintassi è molto semplice ed intuitiva.
Include permette di includere file all'interno
di una pagina o script, e si attiva ogni volta che è richiesto dal programma.
Se sussiste un problema genera un errore di tipo
"warning" ma la pagina o lo script
viene comunque eseguito.
Per essere sicuri di NON vedere un eventuale errore a video è possibile far precedere l'istruzione dal simbolo chiocciolina @.
Esempio:
<? @include("nome_file.php"); ?>
Require:
<? require("nome_file.php"); ?>
Anche per require la sintassi è molto semplice. Permette di inserire un file o script in una
pagina web. La differenza dal comando
include è che comunque
sia strutturato il programma, il file contenuto dal
costrutto require verrà
inserito nel listato (anche se un ciclo IF non permette di proseguire, le istruzioni verranno
comunque lette dalla macchina host).
Questo perché
require è un
costrutto del linguaggio che costringe ad inserire il
file contenuto al posto della riga
require.
Se sussiste un problema genera un errore di tipo
"Fatal Error" ed interrompe la
compilazione della pagina o script.
NOTE:
Errori:
1) Come abbiamo detto
require e
include inseriscono del codice in una parte del
programma.
In programmi complessi potrebbe accadere che il richiamo di più file porti la macchina
host a leggere più require o include uguali fra loro.
Questa situazione
potrebbe creare dei problemi di ridefinizione di funzioni oppure
nuovi assegnazioni di valore alle variabili, generando errori che non permettono di proseguire
con il programma.
In questi casi si usano i costrutti
require_once(nome_file.php);
oppure
include_once(nome_file.php);
che in pratica verificano se un file è già stato inserito ed evitano che si reinserisca un'altra volta.
2) Cicli condizionali:
Quando inseriamo un include in un ciclo if lo dobbiamo inserire con la seguente sintassi:
<?
if (....){
include("nome_file.php");
}
else{
include("nome_file2.php");
}
?>
IMPORTANTE ricordarsi delle parentesi graffe!!!