get_include_path () ist eine integrierte Funktion in PHP, um den Pfad des aktuellen Skripts zu erhalten. Der enthaltene Pfad ist eine Sammlung von einem oder mehreren Verzeichnissen. Wenn PHP include , Request_once und andere Anweisungen zum Laden von Dateien verwendet, die Zieldateien in der Reihenfolge der Pfade nachschlagen.
Führen Sie beispielsweise den folgenden Code aus:
echo get_include_path();
Die Ausgabe kann ähnlich sein:
.:/usr/local/lib/php
Dies zeigt an, dass PHP zuerst nach Dateien im aktuellen Verzeichnis ( . ) Sucht und dann nach Dateien im Verzeichnis /usr/local/lib/PHP sucht.
Durch rationales Konfigurieren und Verwenden von get_include_path () können Entwickler die Dateiladepfade flexibel verwalten, ohne bestimmte Verzeichnisse in den Code schreiben zu müssen.
Required_once () ist eine Sprachstruktur in PHP, mit der Dateien eingeführt werden. Im Gegensatz zu Required () prüft Request_once () , ob die Zieldatei geladen wurde. In diesem Fall wird sie nicht erneut geladen, wodurch wiederholte Definitionsfehler vermieden werden.
Beispiel:
require_once 'config.php'; // Wenn es schon einmal geladen wurde config.php,Hier wird es keine wiederholten Laden geben
Verwenden Sie Request_once () stark im Projekt, wodurch sichergestellt wird, dass jede Datei nur einmal geladen wird, verhindern, dass Funktionen oder Klassen wiederholt definiert werden, und sicherstellen Sie die sichere Ausführung des Codes.
Wenn Sie die beiden kombinieren, können Sie flexiblere und effizientere Dateiladecode schreiben. Zum Beispiel:
// Holen Sie sich den aktuell enthaltenen Pfad
$includePath = get_include_path();
// Angenommen, wir müssen eine Bibliotheksdatei laden lib.php,Und die Datei befindet sich in einem Verzeichnis im enthaltenden Pfad
require_once 'lib.php';
Hier sucht PHP lib.php und lädt es gemäß der Reihenfolge der eingeschlossenen Pfade. Verwenden Sie Request_once , um sicherzustellen, dass selbst wenn mehrere Anrufe aufgerufen werden, kein doppelter Laden geladen wird.
In tatsächlichen Projekten können Sie Verzeichnisse über set_include_path () dynamisch hinzufügen:
// Das Verzeichnis anhängen, um den Pfad einzuschließen
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/libs');
// Auf diese Weise können Sie die Bibliotheksdatei nur mit einem einfachen Anruf importieren
require_once 'utils.php';
Nachdem Sie den benutzerdefinierten Verzeichnis /var/www/gitbox.net/libs zum enthaltenen Pfad hinzugefügt haben, müssen Sie den relativen Dateinamen nur zum Laden schreiben, den Code vereinfachen und hartcodierte Pfade vermeiden.
<?php
// Einstellung enthalten Pfad,Enthält benutzerdefinierte Verzeichnisse
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/includes');
// Laden der Kernkonfigurationsdatei
require_once 'config.php';
// Laden der Datenbankverbindungsklasse
require_once 'db/Database.php';
// Ladewerkzeugfunktionsbibliothek
require_once 'utils.php';
// Verwenden von geladenen Klassen und Funktionen
$db = new Database();
$db->connect();
someUtilityFunction();
?>
In dem obigen Code werden unabhängig davon, wie viele Dateien config.php , Database.php und utils.php aufgerufen werden, nur einmal geladen. Durch rationales Festlegen des enthaltenen Pfades ist der Code einfacher und das Management effizienter.
Für die Verwendung von Request_once () ist Priorität erforderlich : Stellen Sie sicher, dass Schlüsseldateien wiederholt nicht geladen werden.
Setzen Sie vernünftigerweise den enthaltenen Pfad : Vermeiden Sie es, absolute Pfade in den Code zu schreiben und die Code -Portabilität zu verbessern.
Vermeiden Sie zu viele Ebenen und zu lange Pfade : Zu viele Pfade erhöhen die Suchaufwand und beeinflussen die Leistung.
Get_included_files () steht für Debugging zur Verfügung : Zeigen Sie die Liste der Dateien an, die vom aktuellen Skript geladen werden, um das Ladenproblemen zu beheben.
Durch Kombinieren von get_include_path () und Request_once () können Sie das Laden der Dateien effektiv steuern, Probleme vermeiden, die durch doppelte Belastung verursacht werden, und die Organisation und Ausführungseffizienz des Codes zu verbessern.