Der Unterschied zwischen include und require in PHP (einschließlich detaillierter Erklärung)
1 Verwendung von Syntax und Einführung
1. include()-Syntax:
include(/path/to/filename)
include()-Anweisung fügt eine Datei an der Stelle ein, an der sie aufgerufen wird. Durch das Einschließen einer Datei werden die Daten der angegebenen Datei an den Speicherort der Anweisung kopiert.
Sie können die Klammern ignorieren, wenn Sie include() verwenden. Wenn Sie include() in einer bedingten Anweisung verwenden, muss diese in Klammern des Anweisungsblocks oder von anderen Anweisungswrappern eingeschlossen werden.
2. include_once()-Syntax:
include_once(filename)
include_once()-Anweisung schließt die angegebene Datei während der Skriptausführung ein und führt sie aus. Dieses Verhalten ähnelt der include()-Anweisung. Der einzige Unterschied besteht darin, dass include_once() zunächst ermittelt, ob die Datei bereits eingebunden wurde.
3. require()-Syntax:
require(filename)
require() ist weitgehend identisch mit include, beide enthalten eine Vorlagendatei in require Sitzposition. Es gibt zwei wichtige Unterschiede zwischen require und include.
1. Unabhängig vom Speicherort von „require“ wird die angegebene Datei in das Skript eingefügt, wo „require“ erscheint. Selbst wenn „require“ beispielsweise in eine if-Anweisung eingefügt wird, die als „false“ ausgewertet wird, wird die angegebene Datei dennoch einbezogen.
2. Wenn „require“ fehlschlägt, wird die Ausführung des Skripts gestoppt, aber wenn „include“ verwendet wird, wird die Ausführung des Skripts fortgesetzt.
4. require_once()-Syntax:
require_once(filename)
require_once()-Anweisung schließt die angegebene Datei während der Skriptausführung ein und führt sie aus. Dieses Verhalten ähnelt der require()-Anweisung. Der einzige Unterschied besteht darin, dass require_once() zunächst ermittelt, ob die Datei bereits eingebunden wurde, und diese Einbindung ignoriert.
2 Zusammenfassung der Unterschiede
1. Der Unterschied zwischen include()- und require()-Anweisungen.
Beispiel 1
include('hello.php'); echo 'include test final!';//include报错,但是会继续执行,显示:include test final! require('hello.php'); echo 'require test final!';//require报错,停止代码的执行。
Zusammenfassung:
⑴ include() generiert eine Warnung und das Skript wird weiter ausgeführt.
⑵ require() verursacht einen schwerwiegenden Fehler und das Skript wird nicht mehr ausgeführt.
Mit anderen Worten: Verwenden Sie require(), wenn Sie die Verarbeitung der Seite stoppen möchten, wenn eine fehlende Datei oder ein Fehler auftritt. Wenn Sie die Verarbeitung der Seite fortsetzen möchten, wenn ein Fehler auftritt, verwenden Sie include().
Beachten Sie, dass Syntaxfehler in Include-Dateien vor PHP 4.3.5 nicht zum Stoppen des Programms führten, ab dieser Version jedoch.
2. require() schließt Dateien trotzdem ein, während include() selektiv
Beispiel 2
<?php if(FALSE){ require('x.php'); } if(FALSE){ include('s.php'); } ?>
oben einschließen kann code: x.php wird definitiv enthalten sein, aber s.php wird definitiv nicht enthalten sein.
3. Der Unterschied zwischen include_once(), require_once() und include(), require()
include_once() ist derselbe wie require_once() und sollte Wenn dieselbe Datei während der Skriptausführung möglicherweise mehr als einmal eingebunden wird, möchten Sie sicherstellen, dass sie nur einmal eingebunden wird, um Probleme wie Funktionsneudefinitionen und Variablenneuzuweisungen zu vermeiden. Dies ist der Hauptunterschied zwischen include_once() und require_once() und include() und require().
Drei Probleme, die Aufmerksamkeit erfordern
1. Pfadprobleme
besonders verschachtelte Einschlüsse Achten Sie daher unbedingt auf den Pfad der enthaltenen Datei. Beispielsweise enthält Datei A Datei B, Datei B enthält Datei C und die Dateien A, B und C befinden sich nicht im selben Ordner. Zu diesem Zeitpunkt können häufig Fehler gemacht werden.
Lösung: Sie können die Anweisung dirname(__FILE__) verwenden, um den absoluten Pfad des aktuellen Skripts abzurufen. Zum Beispiel: require_once(dirname(__FILE__).'/config.php');
2. Effizienzprobleme
include_once(), require_once() Im Vergleich zu include() und require() ist es weniger effizient, da sie zumindest zunächst feststellen müssen, ob die Datei enthalten ist. Dieses Problem wurde in der PHP5-Version erheblich verbessert, es gibt jedoch immer noch einen Unterschied in der Effizienz.
Vielen Dank an alle fürs Lesen. Ich hoffe, dass Sie nach dem Lesen einige Fortschritte machen.
Empfohlenes Tutorial: „PHP-Tutorial“
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Include-Dateien und Require in PHP (mit ausführlicher Erklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!