In PHP werden die Funktionen „include“ und „require“ leicht verwechselt. Im Folgenden werde ich anhand eines klassischen Beispiels ihre Unterschiede deutlich veranschaulichen.
Wenn wir häufig auf eine Datenbank zugreifen, können wir die Verbindungsanweisung in eine Datei
con_db.php
<?php
schreiben
$dbh = mysql_connect('localhost','','');
mysql_select_db('admreqs');
?>
In der tatsächlichen Anwendung können wir diese Datei im Programm aufrufen.
Zum Beispiel require("con_db.php") oder include("con_db.php)
, die Wirkung der beiden Funktionen ist fast gleich.
Wenn Sie jedoch
filename.php
<?php
wie folgt verwenden
require("con_db.php")
Funktion myfun($par1,$par2)
{Enthält Anweisungen zur Datenbankverarbeitung}
.....
myfun($par1,$par2);
.....
myfun($p1,$p2);
?>
Die Datei kann nicht weiter ausgeführt werden, wenn sie myfun erreicht, da die externen Variablen nicht in der Funktion abgerufen werden können (dasselbe gilt für include). Es sei denn, $dbh wird als Variable an die Funktion übergeben. Dies erhöht die Komplexität des Aufrufs von Funktionen.
Wir können dieses Problem lösen, indem wir require oder include in die Funktion einfügen.
Wenn include verwendet wird, verläuft der erste Funktionsaufruf der Datei reibungslos, der zweite Aufruf wird jedoch nicht ausgeführt. Der Grund dafür ist, dass die Datenbank nicht erneut geöffnet werden kann, ohne sie zu schließen. Mit anderen Worten: con_db.php wird zweimal ausgeführt. Ersetzen Sie include durch require und alles ist in Ordnung.
Mit anderen Worten: „require“ ähnelt einem Vorabscan. Wenn das Programm ausgeführt wird, egal ob innerhalb oder außerhalb der Funktion, wird die „require“-Datei zuerst und nur einmal ausgeführt. Und include ruft die Datei bei jeder Ausführung auf. Das heißt, nach dieser Ausführung wird sie bei der nächsten Ausführung bis zu diesem Punkt erneut ausgeführt.
Wenn es also bestimmte Anweisungen in einer Schleife gibt, die Sie nur einmal ausführen möchten, können Sie sie einfach mit require einbinden.