1. Überblick
Die Leistung von require() ähnelt der von include(), da beide die angegebene Datei einbinden und ausführen. Der Unterschied besteht darin, dass bei include() die Datei bei jeder Ausführung gelesen und ausgewertet wird; wohingegen bei require() die Datei nur einmal verarbeitet wird (tatsächlich ersetzt der Dateiinhalt die require()-Anweisung). Das bedeutet, dass die Verwendung von require() effizienter ist, wenn Code vorhanden ist, der möglicherweise mehrfach ausgeführt wird. Wenn Sie hingegen bei jeder Ausführung des Codes unterschiedliche Dateien einlesen müssen oder eine Schleife über eine Gruppe von Dateien laufen lassen, verwenden Sie include().
Die Verwendung von require() ist wie folgt:
require("myfile.php")
Diese Anweisung wird normalerweise ganz an den Anfang eines PHP-Skripts gesetzt. Bevor das PHP-Programm ausgeführt wird, liest es zuerst die durch die require()-Anweisung eingebundene Datei ein und macht sie zu einem Teil der PHP-Skriptdatei.
Die Verwendung von include() ist dieselbe wie bei require, zum Beispiel:
include("myfile.php")
Diese Anweisung wird im Allgemeinen im Verarbeitungsbereich der Ablaufsteuerung platziert.
Die PHP-Skriptdatei liest die eingebundene Datei erst ein, wenn sie auf die include()-Anweisung stößt. Diese Vorgehensweise kann den Ablauf der Programmausführung vereinfachen.
- incluceBei Bedarf laden
- requireZu Beginn laden
- _onceDas Suffix gibt an, dass bereits geladene Dateien nicht erneut geladen werden
Das PHP-System besitzt beim Laden von PHP-Programmen einen Pseudo-Kompilierungsprozess, der die Programmausführung beschleunigen kann. Dateien, die mit include eingebunden werden, werden jedoch weiterhin interpretiert und ausgeführt. Wenn in einer eingebundenen Datei ein Fehler auftritt, läuft das Hauptprogramm weiter; wenn in einer erforderlichen Datei ein Fehler auftritt, stoppt das Hauptprogramm. Wenn ein Fehler in der eingebundenen Datei also nur geringe Auswirkungen auf das System hat (z. B. bei Schnittstellendateien), verwenden Sie include; andernfalls verwenden Sie require.
Die Anweisungen require() und include() sind Sprachkonstrukte, keine echten Funktionen. Wie andere Sprachkonstrukte in PHP, zum Beispiel kann echo() die Form echo("ab") oder die Form echo "abc" verwenden, um die Zeichenkette abc auszugeben. Die Anweisungen require() und include() können auch Parameter direkt ohne Klammern entgegennehmen.
Die Anweisungen include_once() und require_once() binden während der Skriptausführung ebenfalls die angegebene Datei ein und führen sie aus. Dieses Verhalten ähnelt include() und require(), und die Verwendung ist dieselbe. Der einzige Unterschied besteht darin, dass der Code in der Datei nicht erneut eingebunden wird, wenn er bereits eingebunden wurde. Diese beiden Anweisungen sollten verwendet werden, wenn während der Skriptausführung dieselbe Datei mehr als einmal eingebunden werden kann, um sicherzustellen, dass sie nur einmal eingebunden wird und Probleme wie Funktionsneudefinition und Variablenneuzuweisung zu vermeiden.
2. Ausführliche Erklärung
2.1 Fehlerberichterstattung
includeWenn beim Einbinden einer Datei ein Fehler auftritt, wird ein Hinweis gegeben und der nachfolgende Code wird weiter ausgeführt.
requireWenn beim Einbinden einer Datei ein Fehler auftritt, wird ein Hinweis gegeben und der nachfolgende Code wird nicht weiter ausgeführt.
Verwenden wir ein Beispiel. Schreiben Sie zwei PHP-Dateien mit den Namen test-include.php und test-require.php. Beachten Sie, dass im selben Verzeichnis keine Datei mit dem Namen test-nothing.php vorhanden sein sollte.
test-include.php
test-require.php
Rufen Siehttp://localhost/test-include.phpauf, da die Datei test-nothing.php nicht gefunden wurde, sahen wir eine Fehlermeldung, und gleichzeitig wurde abc unter der Fehlermeldung angezeigt. Was Sie sehen, könnte dem Folgenden ähneln:
Warning: include(test-nothing.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 2 Warning: include() [function.include]: Failed opening 'test-nothing.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2 abc
Rufen Sie http://localhost/test-require.php auf. Da die Datei test-nothing.php nicht gefunden wurde, sahen wir eine Fehlermeldung, aber abc wurde nicht unter der Fehlermeldung angezeigt. Was Sie sehen, könnte dem Folgenden ähneln:
Warning: require(test-nothing.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 2 Fatal error: require() [function.require]: Failed opening required 'test-nothing' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2
2.2 Methoden zum Einbinden von Dateien
Wenn include() ausgeführt wird, muss die referenzierte Datei jedes Mal gelesen und ausgewertet werden; wenn require() ausgeführt wird, wird die referenzierte Datei nur einmal verarbeitet (tatsächlich ersetzt während der Ausführung der Inhalt der referenzierten Datei die require()-Anweisung). Es ist ersichtlich, dass die Verwendung von require() effizienter ist, wenn Sie Code haben, der eine dieser Anweisungen enthält und möglicherweise mehrfach ausgeführt wird. Wenn Sie bei jeder Ausführung des Codes eine andere Datei lesen müssen oder eine Schleife haben, die eine Gruppe von Dateien durchläuft, verwenden Sie include(). Sie können eine Variable für den Dateinamen festlegen, den Sie einbinden möchten, und diese Variable verwenden, wenn der Parameter include() ist.
Ursprünglicher Link: https://blog.csdn.net/shenpengchao/article/details/52326233