Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert das automatische Laden verwandter Funktionen
Wenn beim Ausführen von PHP festgestellt wird, dass eine Klasse verwendet werden muss (sofern es sich um einen mit dieser Klasse verbundenen Vorgang handelt), verfügt das aktuelle Skript zu diesem Zeitpunkt nicht über den Definitionscode dieser Klasse! Dann ruft PHP zu diesem Zeitpunkt automatisch eine Funktion namens __autoload() auf! Und beim Aufruf wird der Funktion ein Parameter übergeben, der der Klassenname der aktuell benötigten Klasse ist.
#自动加载 函数function __aotuload($class_name){ if(!file_exists("./".$class_name.".class.php")){ include "./".$class_name.".class.php"; }else{ die("系统错误,没有找到相关的类!"); } }
Im Allgemeinen ist die Autoloading-Funktion des Systems __autoload(), aber wenn das Projekt erweitert wird, können mehrere Autoloader angezeigt werden. Funktion, beispielsweise wenn eine automatische Ladefunktion vorhanden ist in der geladenen Datei erscheint, entsteht das Problem doppelter Funktionsnamen!
Wir verwenden überhaupt nicht die __autoload-Funktion, sondern registrieren die eigene Autoloading-Funktion des Benutzers, um die obige Situation zu vermeiden!
#注册其他的自动加载函数 解决自动加载函数重名问题function f1($class_name){ if(!file_exists("./".$class_name.".class.php")){ include "./".$class_name.".class.php"; }else{ die("系统错误,没有找到相关的类!"); } } spl_autoload_register('f1');
Sie müssen folgende Punkte beachten:
1. Die Anmeldung muss erfolgen, bevor ein bestimmter Kurs erforderlich ist!
2. Sie können mehrere automatische Ladefunktionen registrieren. Bevor die erforderliche Klassendatei erfolgreich geladen wird, wird sie in der Reihenfolge der Registrierung ausgeführt, bis sie gefunden wird.
3. Sobald andere Autoload-Funktionen registriert sind, wird die Standardfunktion __autoload des Systems ungültig!
Wenn Sie die __autoload-Funktion weiterhin verwenden möchten, müssen Sie sie wie andere normale Funktionen erneut registrieren!
Im objektorientierten Programmierstil kapseln wir normalerweise benutzerdefinierte automatische Ladefunktionen in einer Klasse!
Die Syntaxform lautet:
spl_autoload_register(array('class name', 'method name'));
In Darüber hinaus gibt es auch eine relativ einfache Form der Registrierung statischer Methoden:
spl_autoload_register('class name::method name');
Zu diesem Zeitpunkt registrieren. Die Schritte lauten wie folgt:
1, Instanziieren Sie zuerst ein Objekt
2 und registrieren Sie es dann mit spl_autoload_register(). Zu diesem Zeitpunkt ist die Parameterform des Die Funktion lautet wie folgt:
spl_autoload_register( array(object variable, 'method name'));
#注册自动加载方法class Common { public static function autoload($class_name){ if(!file_exists("./".$class_name.".class.php")){ include "./".$class_name.".class.php"; }else{ die("系统错误,没有找到相关的类!"); } } } //spl_autoload_register("Common::autoload"); spl_autoload_register(array("Common","autoload"));
Verwandte Empfehlungen:
Implementierungscode von PHP Einfaches Routing und automatische Klassenladefunktion
Detaillierte Erklärung des automatischen Ladens von PHP-Dateien
Ausführliche Zusammenfassung des automatischen Ladens von PHP
Das obige ist der detaillierte Inhalt vonPHP implementiert das automatische Laden verwandter Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!