2013-11-02 5 views
5

require und include haben die Variationen require_once und include_once. Sie verhindern, dass das Skript eine Datei mehrmals lädt.Warum möchten Sie mehrmals angeben/benötigen?

Ich glaube, ich sicher davon ausgehen kann, da die Funktionen existieren, dass es Fälle geben, in denen Sie die require/include Funktion anstelle des require_once/include_once man braucht. Aber ich kann mir einen solchen Fall nicht vorstellen. Was würde das sein?

+0

I 'require' verwenden [in einem Template-Engine] (https://github.com/halfer/TemplateSystem/blob/master/ControllerBase.php#L52) ein schließen HTML-Fragment so oft wie nötig. Wie es passiert, war mein letzter Fehler bei diesem Repo, dass ich 'require_once' fälschlicherweise verwendete, daher wurden Fragmente, die mehr als einmal verwendet wurden, ignoriert! – halfer

Antwort

7

Wahrscheinlich das beste Beispiel wäre, wenn Ausgabe geben. Wenn Sie beispielsweise ein HTML-Snippet haben, das auf verschiedenen Seiten mehrmals angezeigt wird, können Sie es in eine separate Datei einfügen und so oft wie gewünscht einfügen.

Außerdem ist es oft unnötig, require_once oder include_once zu verwenden. Wenn die Datei nur einmal aufgerufen wird (z. B. in __autoload), haben die einfachen Funktionen weniger Overhead, da PHP nicht überwachen muss, ob die Datei zuvor enthalten war.

+0

Also, wenn ich richtig verstehe, 'require_once' und' include_once' gibt es für schlampige Scripters, um ihre Unordnung aufzuräumen? – Joren

+1

@Joren Zu einem gewissen Grad gehören sie in eine vergangene Ära von PHP, ja, würde ich sagen. – lonesomeday

+0

Schöne, eine mentale -1 für PHP und eine +1 für Sie. – Joren

1

Möglicherweise möchten Sie require_once anstelle von require verwenden, wenn Sie eine Variable oder Konstante nur einmal definieren möchten. Dies ist hilfreich, um wiederverwendbare Klassen in einer sehr großen Codebasis zu erstellen, die Abhängigkeiten schnell verwaltet. Sagen wir, ich habe eine Datei A, die eine Datei B benötigt, aber ich habe bereits Datei C eingeschlossen, die Datei B enthielt. Da Datei B bereits enthalten war, muss das Programm diesen Code nicht erneut auswerten, um Datei A richtig auszuwerten wo Sie die Datei möglicherweise nur einmal einschließen möchten.

Es hilft mit Abhängigkeiten Verwaltung