Dieser Artikel ist eine detaillierte Analyse und Einführung in den Mechanismus zum automatischen Laden von PHP . Freunde, die ihn benötigen, können sich auf
1. Automatisches Laden in PHP-Methode beziehen
1. Verwenden Sie require, include, require_once, include_once, um manuell zu laden. 2. Verwenden Sie Autoload zum automatischen Laden.
Implementierung des manuellen Ladens:
Wir können es verwenden, wenn nur wenige Dateien geladen werden müssen als Erster fertig. Das geht ganz einfach und stellt kein Problem dar.
Der Code lautet wie folgt:
require_once 'a.php'; require_once 'b.php'; require_once 'c.php';
Zu diesem Zeitpunkt können wir die Autoload-Methode verwenden, um unseren Code zu vereinfachen.
Implementierung des Autoload-Ladens:
Wir erstellen im Testverzeichnis eine in.php-Datei mit folgendem Inhalt.
Der Code lautet wie folgt:
echo '我是test下面的in.php<br />';
Der Code lautet wie folgt:
// 需要重载autoload方法,自定义包含类文件的路径 function autoload($classname) { $class_file = strtolower($classname).".php"; if (file_exists($class_file)){ require_once($class_file); } } @$test = new in(); // 执行到这里会输出 <SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif">我是test下面的in.php</SPAN>
Zu diesem Zeitpunkt müssen wir loader.php ändern, um die Zuordnung zu verwenden, um die zu ladende Datei zu finden.
Der Code lautet wie folgt:
function autoload($class_name) { $map = array( 'index' => './include/index.php', 'in' => './in.php' ); if (file_exists($map[$class_name]) && isset($map[$class_name])) { require_once $map[$class_name]; } } new index();
Aber Autoload kann nur einmal in einem Projekt verwendet werden. Wenn Ihr Projekt auf ein Projekt anderer verweist, gibt es ein Autoload in Ihrem Projekt und es gibt ein Autoload in den Projekten anderer Personen, sodass die beiden Autoloads in Konflikt stehen. Die Lösung besteht darin, Autoload so zu ändern, dass es eins wird. Dies ist zweifellos sehr umständlich und hat ein einziges Anwendungsszenario.
Autoload-Ladeimplementierung von SPL:
Die Autoload-Funktionsreihe von SPL verwendet einen Autoload-Aufrufstapel, um mehrere benutzerdefinierte Autoload-Funktionen zu registrieren Verschiedene Anwendungsszenarien
Der Code lautet wie folgt:
<?php class in { public function index() { echo '我是test下面的in.php'; } } ?>
Der Code lautet wie folgt:
<?php set_include_path("/var/www/test/"); //这里需要将路径放入include spl_autoload("in"); //寻找/var/www/test/in.php $in = new in(); $in->index();
-Code wie folgt:
function AutoLoad($class){ if($class == 'in'){ require_once("/var/www/test/in.php"); } } spl_autoload_register('AutoLoad'); $a = new in(); $a->index();
Erstellen Sie zunächst den Mods-Ordner im Testverzeichnis und erstellen Sie inmod.mod.php mit folgendem Inhalt:
Der Code lautet wie folgt:
<?php class inmod { function construct() { echo '我是mods下的in'; } }
Der Code lautet wie folgt:
<?php class inlib { function construct() { echo '我是libs下的in'; } }
Der Code lautet wie folgt:
Das obige ist der detaillierte Inhalt vonEingehende Untersuchung des automatischen Lademechanismus von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!