Include
e include_once
sono due funzioni molto utili che ci permettono di dividere in piú file il nostro codice.
Il comportamento di questa funzione è molto simile alla direttiva del precompilatore C #include. Il file indicato tra parentesi è incluso e valutato.
Tutte le variabili, funzioni e oggetti contenuti nel file diventeranno automaticamente disponibili dalla riga in cui la funzione è chiamata.
Se il file non viene trovato, il PHP genera in automatico un warning e continua con l’esecuzione della pagina.
Ogni volta che la funzione viene chiamata il PHP entra in quella che è chiamata la modalità HTML quindi tutto il codice viene interpretato come HTML e stampato direttamente nella pagina HTML per poi ritornare in modalità PHP alla fine del file.
Se volete che il codice venga eseguito dovrete ricordavi di racchiudere il codice tra i tag di apertura e chiusura.
Ricordate che se usate la include
all’interno di una funzione tutto il suo contenuto sarà disponibile solo all’interno della funzione e verrà cancellato alla morte della stessa.
<!--?php ### File variabile-a.php $a = 10; ?--> <!--?php ### File variabile-b.php $b = 99; ?--> <!--?php ### File funzioni.php echo $a; // non stampa niente include ('variabile-a.php'); echo $a; // viene stampato 10 function funzione_A () { include ('variabile-b.php'); echo $b; // stampa 99 } funzione_A (); echo $b; // non stampa niente ?-->
Il funzionamento di include_once
, come suggerisce il nome stesso, è simile a quello della include
con la sola differenza che il file viene incluso soltanto una volta.
Questa funzione è particolarmente utile quando si vuole limitare l’inclusione di un file per evitare conflitti con redifinizioni di variabili e funzioni all’interno del file.
<!--?php ### file incluso.php $x = 12.23; ?--> <!--?php ### File principale.php include_once ('incluso.php'); echo $x++; // stampa 12.23 include_once ('incluso.php'); echo ++$x; // stampa 14.23 ?-->
vicius
Ciao,
ho letto con piacere questo articolo in quanto volevo sapere la differenza tra le due funzioni: include & include_once.
Non ho però compreso una cosa nell’ultima parte di codice esposta.
Perchè l’echo della variabile $x passa da “12.23” a “14.23”?
Perchè con il primo echo la variabile viene incrementata dopo (13.23) e poi con il secondo echo viene stampata incrementata rispetto all’incremento precedente (14.23) ?
Grazie e complimenti per l’articolo.
Ciao Walter, grazie per il commento.
include_once non permette di includere il file più di una volta (fai riferimento alla documentazione http://php.net/manual/en/function.include-once.php )
Per rispondere alla seconda domanda $x parte da 12.23, la prima echo stampa il valore (12.23) e incrementa di 1 mentre la seconda echo prima incrementa di 1 poi stampa il valore che nel frattempo è diventato 14.23.
A presto!