Der Unterschied zwischen den PHP-Funktionen include(), require(), include_once() und require_once()

Mittwoch, 24. Juni 2015 | von PhilVanB | Sprache wählen This article in english


Unterschied include() und require()


Die vier Funktionen include(), require(), include_once() und require_once() sind ein wichtiger Bestandteil der Webentwicklung mit PHP.



Alle vier dieser PHP-Funktionen ermöglichen das Einbinden von Dateien. Der Unterschied zwischen den Funktionen include() und require() besteht darin, dass, wenn die einzubindende Datei unter dem angegebenem Pfad nicht gefunden werden kann, bei include() eine Warnung ausgegeben wird und das restliche Skript weiter ausgeführt wird, während bei require() ein Fatal Error ausgegeben wird und der gesamte Code abgebrochen wird.

 

Unterschied einmaliges und wiederholtes Einbinden


Die Funktionen include_once() bzw. require_once() binden eine Datei nur einmal ein und verhindern das wiederholte inkludieren, wenn ein Skript bereits eingebunden wurde.
Eine Einbindung erfolgt folgendermaßen:

 

require_once('somefile.php')

 

Erläuternde Beispiele


Es stellt sich die Frage, wann man welche der vier erwähnten Funktionen am besten verwenden soll? Wenn es sehr wichtig ist, dass der Code eingebunden wird, wenn etwa bei einem Login Manager geprüft werden muss, ob ein Benutzer eingeloggt ist oder nicht, dann sollte eher require() verwendet werden. Wenn es dagegen Priorität hat, dass eine Seite auf jeden Fall dargestellt wird, dann sollte man eher include() verwenden.

Hier für jede der vier Funktionen eine Verwendungsempfehlung:

 

Beispiel require()


Wenn ein Skript für das einwandfreie Funktionieren einer Applikation zwingend notwendig ist, z.B. eine Datei mit Konstanten für die Konfiguration (BASEURL, etc.)

 

Beispiel require_once()


Eignet sich für die Einbindung von Code der eingebunden werden muss aber bei wiederholtem Einbinden Fehler produzieren würde. Das gilt z.B. für Skripte mit Funktionen. Würde ein solches Skript mehrmals inkludiert werden, gäbe es eine Fehlermeldung, da Funktionen nicht redeklariert werden können.

 

Beispiel include()


Diese Funktion kann verwendet werden wenn bei einem Einbindungsfehler die Anwendung weiter laufen soll und ein wiederholtes Einbinden keinerlei Nachteile bedeutet.

 

Beispiel include_once()


Die Funktion include_once() eignet sich beispielsweise, wenn Dateien von außerhalb eingebunden werden und dies wegen eines möglichen HTTP overhead nicht wiederholt geschehen soll.

Mehr Informationen zum Thema gibt es auf PHP.net