Differenza tra include() e require()

novello88

Utente Attivo
3 Mar 2012
103
1
0
Non mi è chiara la differenza tra queste due funzioni...
qualcuno è così gentile da spiegarmela?

Grazie a tutti
 
ciao
le istruzioni sono (es.):
include "pinco.php"; se pinco non trovato errore, ma lo script prosegue (con probabile ca..no)
include_once "pinco.php"; come sopra, ma se trova e già incluso non lo include di nuovo
require "pinco.php"; se pinco non trovato errore e lo script si arresta
require_once "pinco.php"; se pinco non trovato errore e lo script si arresta, ma se trova e già incluso non lo include di nuovo
 
Sostanzialmente sono identici in tutto tranne che nella gestione degli errori; la funzione include() genera un warning che non blocca l'esecuzione dello script, require() genera invece un fatal errror che porta l'esecuzione dell'applicazione a bloccarsi.
 
Io sto sempre utilizzando include_once, secondo voi è indifferente oppure conviene usare require? parlo sempre per una questione di correttezza e professionalità...
 
ciao
considerato che l'include fa proseguire puoi avere risultati assurdi, require arresta.
quindi meglio require, anche se un buon script non dovrebbe presentare errori questi possono non essere dovuti allo script, quindi seondo me meglio comunque il require
 
In breve suggerisce di usare require_once quando includi un file "normalmente", e include_once quando l'inclusione è subordinata ad una condizione (es. l'esistenza del file):
PHP:
<?php
require_once 'file.php';

if (file_exists('file2.php')) {
    include_once 'file2.php';
}
?>
 
L'utilizzo delle varianti include_once e require_once serve per indicare all'engine PHP che prima di icludere una pagina si dovrà controllare che questa non sia già stata richiamata.
Ad esempio, require_once può essere adottato per richiamare file che presentano dichiarazioni di classi per l'istanza di oggetti, grazie ad esso la classe non potrà essere ridichiarata prima di essere utilizzata.
 
ciao
scusa, sono antiquato provengo, forse rimasto, al vecchio goto numero_riga, ma cone già detto per me l'uso delle classi (tavolta utile) non è altro che scrivere caratteri in più
 
Quindi in poche parole, dipende in base al proprio progetto e valutare di conseguenza qualche usare.
 
ciao
cito le testuali parole di un mio vecchio libro

....
La scelta migliore, cui ci si dovrebbe sempre attenere, se non si hanno ottime ragioni per procedere differentemente, è di utilizzare la dichiarazione require_once che evita tutti i problemi precedenti.
....
 
ciao,

io uso questa tecnica ma non so se sia la piu indicata anche perchè non l'ho vista mai usare

nella pagina richiamo un solo file con

PHP:
require_once('file_inclusi.php');

in file_inclusi.php scrivo:

PHP:
include_once('prima_classe.php');
include_once('seconda_classe.php');
include_once('funzioni.php');
include_once('costanti.php');

etc
 
ciao
la discussione sembrainteressare.
@ciric
penso che vada bene comunque utilizzando tutti require andrebbe beno lo stesso.
un piccolo appunto: non ci vorrebbero le parentesi, include e require non sono funzioni ma costrutti
 
in effetti nel file che include le librerie non uso le parentesi

ho sbagliato a postare

però nella pagina, quando uso il require, metto anche le parentesi e non ricevo nessuna notifica di errore

probabilmente si possono usare entrambe le sintassi (?!)
 
cioa
infatti non è un error è solo un'imprecisione, ma che funzia comunque
un po (credo) come echo ("pinco"); non è un errore ma echo è un costrutto quindi è meglio senza ()
 

Discussioni simili