Welche Möglichkeiten gibt es, Dateien in PHP zu importieren? Die PHP-Importdatei enthält vier Anweisungen: include, require, include_once, require_once Schauen wir uns konkrete Beispiele für PHP-Importdateien an.
Grundlegende Syntax
require: Die require-Funktion wird im Allgemeinen am Anfang des PHP-Skripts platziert und wird es auch sein Wird vor PHP ausgeführt. Lesen Sie zuerst die durch require angegebene importierte Datei ein, schließen Sie sie ein und versuchen Sie, die importierte Skriptdatei auszuführen. Die Funktionsweise von require besteht darin, die Ausführungseffizienz von PHP zu verbessern. Nachdem es einmal auf derselben Webseite interpretiert wurde, wird es beim zweiten Mal nicht interpretiert. Da die importierte Datei jedoch nicht wiederholt interpretiert wird, müssen Sie include verwenden, wenn Sie Schleifen oder bedingte Anweisungen verwenden, um Dateien in PHP einzuführen.
include: kann an einer beliebigen Stelle im PHP-Skript platziert werden, normalerweise im Verarbeitungsteil der Prozesssteuerung. Wenn das PHP-Skript in der durch include angegebenen Datei ausgeführt wird, wird es eingebunden und es wird versucht, es auszuführen. Diese Methode kann den Prozess der Programmausführung vereinfachen. Wenn Sie zum zweiten Mal auf dieselbe Datei stoßen, interpretiert PHP sie immer noch neu. Die Ausführungseffizienz von include ist viel geringer als die von require. Gleichzeitig wird die benutzerdefinierte Funktion in die importierte Datei aufgenommen. PHP wird das Problem der wiederholten Funktionsdefinition während des Interpretationsprozesses haben.
require_once / include_once: haben jeweils die gleiche Funktion wie require / include. Der Unterschied besteht darin, dass sie bei der Ausführung zunächst prüfen, ob der Zielinhalt zuvor importiert wurde importiert wurde, wird derselbe Inhalt nicht erneut eingeführt.
Unterschiede voneinander
include hat einen Rückgabewert, während require keinen Rückgabewert hat
Wenn include die Datei nicht laden kann, wird eine Warnung (E_WARNING) generiert und das Skript wird nach Auftreten des Fehlers weiter ausgeführt. Daher wird include verwendet, wenn Sie die Ausführung fortsetzen und Ergebnisse an den Benutzer ausgeben möchten.
//test1.php <?php include './tsest.php'; echo 'this is test1'; ?> //test2.php <?php echo 'this is test2\n'; function test() { echo 'this is test\n'; } ?> //结果: this is test1
require generiert einen schwerwiegenden Fehler (E_COMPILE_ERROR), wenn der Ladevorgang fehlschlägt, und die Ausführung des Skripts stoppt, nachdem der Fehler auftritt. Wird im Allgemeinen verwendet, wenn nachfolgender Code von der geladenen Datei abhängt.
//test1.php <?php require './tsest.php'; echo 'this is test1'; ?> //test2.php <?php echo 'this is test2\n'; function test() { echo 'this is test\n'; } ?>
Ergebnis:
Geladene Dateien einschließen werden nicht als Duplikate gewertet. Solange eine Include-Anweisung vorhanden ist, wird sie einmal geladen (auch wenn es zu wiederholten Ladevorgängen kommen kann). Wenn include_once eine Datei lädt, gibt es einen internen Beurteilungsmechanismus, um festzustellen, ob der vorherige Code geladen wurde. Hierbei ist zu beachten, dass include_once anhand der Frage beurteilt wird, ob zuvor eine Datei mit demselben Pfad importiert wurde, und nicht anhand des Inhalts der Datei (d. h. der Inhalt der beiden zu importierenden Dateien ist derselbe). , und die Verwendung von include_once führt immer noch zwei ein).
//test1.php <?php include './test2.php'; echo 'this is test1'; include './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1this is test2 //test1.php <?php include './test2.php'; echo 'this is test1'; include_once './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1 //test1.php <?php include_once './test2.php'; echo 'this is test1'; include './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1this is test2 //test1.php <?php include_once './test2.php'; echo 'this is test1'; include_once './test2.php'; ?> //test2.php <?php echo 'this is test2'; ?> //结果: this is test2this is test1
require und require_once: Derselbe Unterschied wie include und include_once.
Ausführungsprozess beim Laden
1. Beenden Sie den PHP-Skriptmodus aus der Include-Anweisung (erforderlich) (geben Sie den HTML-Codemodus ein)
2. Laden Sie den Code in die durch die Include-Anweisung festgelegte Datei und versuchen Sie, ihn auszuführen.
3. Verlassen Sie den HTML-Modus, wechseln Sie erneut in den PHP-Skriptmodus und fahren Sie mit der Ausführung des nachfolgenden Skripts fort
//test1.php <html> <body> 主文件开始位置: <?php echo "<br> 主文件中位置 A"; include "./test2.php"; //要载入的文件 echo "<br> 主文件中位置 B"; ?> <br> 主文件结束位置 </body> </html> //test2.php <br> 被载入文件位置 1 <?php echo "<br> 被载入文件位置 2"; ?> <br> 被载入文件位置 3
Ergebnis:
Analyse:
Pfadproblem beim Laden
Suchen Sie den Speicherort einer geladenen Datei relativ zum Speicherort der aktuellen Webseitendatei.
./ 表示表示当前位置,即当前网页文件所在的目录 . . / 表示上一级位置,即当前网页文件所在目录的上一级目录 //例如: include "./test2.php"; require "../../test3.html";
ist in lokalen absoluten Pfad und Netzwerk-absoluten Pfad unterteilt.
Suchen Sie rekursiv Schicht für Schicht abwärts vom lokalen Stammverzeichnis, bis Sie die zu importierende Datei im entsprechenden Verzeichnis finden.
include "C:/PHP/test/test2.php";
Wir alle wissen, dass absolute Pfade der Portabilität und Wartbarkeit des Projekts nicht förderlich sind, daher ist es im Allgemeinen selten, absolute Pfade direkt in den Code zu schreiben, aber was sollten wir tun, wenn wir absolute Pfade verwenden müssen? Wege? ? Es gibt magische Konstanten __DIR__ und das globale Array $_SERVER in PHP. Die Verwendung ist wie folgt:
<?php define('DS') or define('DS',DIRECTORY_SEPARATOR); echo "使用绝对路径引入(方法一)"; include __DIR__ . DS . 'test2.php'; echo "使用绝对路径载入方法(方法二)"; $root = $_SERVER['DOCUMENT_ROOT']; // 获得当前站点的根目录 include $root.DS.'node_test'.DS.'inAndRe'.DS. 'test2.php'; ?>
Link zur Datei über die URL, und der Server gibt nach der Ausführung die Datei zurück, auf die die URL verweist
include "http://www.lishnli/index.php"
Es wird nur der Dateiname, aber keine Pfadinformationen angegeben Dieses Mal befindet sich PHP im aktuellen Webseitenverzeichnis. Suchen Sie nach der Datei. Wenn eine Datei mit demselben Namen gefunden wird, führen Sie sie aus und importieren Sie sie.
需要注意:无论采用哪种路径,必须要加上文件后缀名,这四种文件载入方式不能识别无后缀的文件。
//test1.php include "./test2.php"; //结果:this is test2 //test1.php include "./test2"; //结果:
返回值的比较
上文说道include有返回值,而require无返回值
对于include,如果载入成功,有返回值,返回值为1;如果载入失败,则返回false.
对于require,如果载入成功,有返回值,返回值为1;如果载入失败,无返回值。
//test1.php <?php $a = include "./test2.php"; var_dump($a); echo "<br>"; $b = include "./test2.phps"; var_dump($b); echo "<br>"; $c = require "./test2.php"; var_dump($c); echo "<br>"; $d = require "./test2.phps"; var_dump($d); ?>
输出:
当被载入文件中有return语句时,会有另外的机制,此时return语句的作用是终止载入过程,即被载入文件中return语句的后续代码不再载入。return语句也可以用于被载入文件载入时返回一个数据。
//test1.php <?php $a = include "./test2.php"; echo "<br>"; var_dump($a); ?> //test2.php //该文件中有return语句 <?php $b = 'test2'; echo "被载入的文件:A 位置"; return $b; echo "<br 被载入的文件: B 位置"; ?>
结果:
相关推荐:
php 字符串写入文件或追加入文件(file_put_contents)
Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Dateien in PHP zu importieren? Einführung in vier Methoden zum Einführen von Dateien in PHP (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!