Was ist der Unterschied zwischen require und include mit php? [Duplikat]

7

Ich möchte wissen, wann ich include oder require verwenden soll und welchen Vorteil die einzelnen haben.

    
Bigballs 27.02.2009, 19:07
quelle

8 Antworten

29

require erfordert include enthält.

Laut Handbuch:

  

require () ist identisch mit include (), außer bei einem Fehler wird ein schwerwiegender E_ERROR-Level-Fehler erzeugt. Mit anderen Worten, es stoppt das Skript, während include () nur eine Warnung (E_WARNING) ausgibt, die es dem Skript erlaubt, fortzufahren.

    
Paolo Bergantino 27.02.2009, 19:09
quelle
4

Wie andere gesagt haben, wenn "require" die gesuchte Datei nicht findet, wird die Ausführung angehalten. Wenn include die gesuchte Datei nicht ablegt, wird die Ausführung fortgesetzt.

Im Allgemeinen sollte require beim Importieren von Code- / Klassen- / Funktions-Bibliotheken verwendet werden. Wenn Sie versuchen, eine Funktion aufzurufen, eine Klasse instanziieren usw. und die Definitionen nicht vorhanden sind, werden schlechte Dinge passieren. Daher benötigen Sie php, um Ihre Datei einzuschließen, und wenn dies nicht möglich ist, hören Sie auf.

Verwenden Sie include, wenn Sie PHP verwenden, um Inhalt auszugeben oder anderweitig Code auszuführen, der nicht unbedingt späteren Code zerstört, wenn er nicht ausgeführt wird. Das klassische Beispiel hierfür ist das Implementieren einer Ansicht in einem Modell / Ansicht / Controller-Framework. Nichts Neues sollte in einer Ansicht definiert werden, noch sollte es den Anwendungszustand ändern. Daher ist es in Ordnung, Include zu verwenden, da ein Fehler andere Dinge, die in der Anwendung passieren, nicht unterbricht.

Eine kleine Tangente. Es gibt viele widersprüchliche Informationen und Fehlinformationen bezüglich der Leistung von include require und require_once vs. include_once. Sie verhalten sich radikal unterschiedlich in verschiedenen Situationen / Anwendungsfällen. Dies ist einer dieser Orte, an denen Sie wirklich den Unterschied in Ihrer eigenen Anwendung messen müssen.

    
Alan Storm 27.02.2009 21:24
quelle
3

Der Unterschied ist der: Einschließen wird nicht fehlschlagen, wenn es die Ressource nicht finden kann, wird es erfordern. Ehrlich gesagt, es ist irgendwie albern, dass es überhaupt existiert, denn wenn du versuchst, eine Ressource zu laden, zählst du ziemlich darauf, dass sie da ist. Wenn Sie etwas verwenden möchten, würde ich empfehlen, require_once immer zu verwenden, so dass Sie nicht in Kollisionen geraten (dh wenn ein anderes Skript die gleiche Datei benötigt) und Ihr Code immer wie vorgesehen funktioniert, weil Sie die Ressourcen kennen einschließlich sind dort (sonst versagt es).

    
robmerica 27.02.2009 19:11
quelle
1

Wenn eine Datei optional ist, fügen Sie sie hinzu. Zum Beispiel könnten Sie eine Datei "breaking-news.txt" haben, die erstellt wird, wenn es Neuigkeiten gibt, aber nicht existiert, wenn es keine gibt. Es könnte enthalten sein, ohne dass das Skript bricht, wenn es keine neuen Nachrichten gibt.

Wenn die Datei benötigt wird, damit der Rest des Skripts ordnungsgemäß funktioniert, fordern Sie sie an.

    
ceejayoz 27.02.2009 19:11
quelle
0

Ссылка :

Im Gegensatz zu include () liest require () die Zieldatei immer ein, auch wenn die Zeile, auf der sie sich befindet, niemals ausgeführt wird. Wenn Sie eine Datei bedingt aufnehmen möchten, verwenden Sie include (). Die bedingte Anweisung wirkt sich nicht auf require () aus. Wenn jedoch die Zeile, in der request () auftritt, nicht ausgeführt wird, wird auch keiner der Codes in der Zieldatei ausgeführt.

    
gmcrist 27.02.2009 19:10
quelle
0

In einfacher Sprache, wenn wir "require" verwenden, müssen wir sicher sein, dass die Datei in dieser Ära existiert, während sie im Falle eines include nicht notwendig ist. Aber versuchen Sie sicherzustellen, dass die Datei existiert.

    
dharmendra 08.01.2010 11:59
quelle
0
%Vor%

Sie können mit Beispiel verstehen include ("test.php"); echo "\ nDiese Zeile wird gedruckt";

Ausgabe: Warnung: include (test.php): Stream konnte nicht geöffnet werden: Keine solche Datei oder kein Verzeichnis in / var / www / ........ Diese Zeile wird gedruckt

require ("test.php"); echo "\ nDiese Zeile wird gedruckt"; Warnung: require (test.php): Stream konnte nicht geöffnet werden: Keine solche Datei oder kein Verzeichnis in / var / www /....

    
Nanhe Kumar 21.02.2013 08:46
quelle
-1

Require() und include() sind in Bezug auf die Handhabung gleich Fehler. % Co_de% führt jedoch zu einem schwerwiegenden Fehler und nicht Erlaube die Verarbeitung der Seite. d. h., include erlaubt das Skript um fortzufahren.

    
WASEEM AHMAD 08.05.2010 04:08
quelle

Tags und Links