2013-11-02 26 views
5

require e include hanno le variazioni require_once e include_once. Impediscono allo script di caricare un file più volte.Perché vuoi includere/richiedere più volte?

credo di poter tranquillamente assumere, perché le funzioni esistono, che ci sarebbero casi in cui si avrebbe bisogno la funzione require/include invece del require_once/include_once uno. Ma non riesco a immaginare un caso del genere. Cosa sarebbe quello?

+0

Io uso 'require' [in un motore di template] (https://github.com/halfer/TemplateSystem/blob/master/ControllerBase.php#L52) per includere un Frammento HTML tante volte quanto richiesto. Come è successo, il mio ultimo bug su quel repository era il mio errato utilizzo di 'require_once', quindi i frammenti che sono stati usati più di una volta sono stati ignorati! – halfer

risposta

7

Probabilmente l'esempio migliore sarebbe dare output. Se, ad esempio, disponi di uno snippet di codice HTML che potrebbe apparire più di una volta su varie pagine, puoi inserirlo in un file separato e includerlo tutte le volte che desideri.

Inoltre, spesso non è necessario utilizzare require_once o include_once. Se il file verrà chiamato una sola volta (ad esempio in __autoload), le funzioni semplici avranno un sovraccarico minore, poiché PHP non deve tenere traccia del fatto che il file sia stato incluso in precedenza.

+0

Quindi se capisco correttamente 'require_once' e' include_once' ci sono per gli sceneggiatori sciatti per ripulire il loro casino? – Joren

+1

@Joren In qualche misura appartengono a un'era passata di PHP, sì, direi così. – lonesomeday

+0

Bello, un mentale -1 per PHP e un +1 per te. – Joren

1

Si potrebbe desiderare di utilizzare require_once anziché require se si desidera che una variabile o una costante vengano definite una sola volta. Questo è utile per creare classi riutilizzabili in una base di codice molto ampia che gestisce rapidamente le dipendenze. Diciamo che ho un file A che ha bisogno di un file B ma ho già incluso il file C che includeva il file B. Poiché il file B era già incluso, il programma non deve valutare nuovamente quel codice per valutare correttamente il file A. Questo è un caso dove potresti voler includere il file solo una volta.

Si aiuta con la gestione delle dipendenze

Problemi correlati