In diesem Artikel wird hauptsächlich die Verwendung der Funktion spl_autoload_register() in PHP vorgestellt und die zugehörigen Verwendungsfähigkeiten der Funktion __autoload_register und der Funktion spl_autoload_register in Form von Beispielen analysiert > empfohlenes Handbuch
:php vollständiges Handbuch zum Selbststudium Bevor wir diese Funktion verstehen, werfen wir einen Blick auf eine andere Funktion: __autoload.
1. __autoload
Dies ist eine automatische Ladefunktion, die in PHP5 ausgelöst wird. Schauen Sie sich das folgende Beispiel an:
printit.class.php:<?php class PRINTIT { function doPrint() { echo 'hello world'; } } ?>
<? function __autoload( $class ) { $file = $class . '.class.php'; if ( is_file($file) ) { require_once($file); } } $obj = new PRINTIT(); $obj->doPrint();?>
2. spl_autoload_register()
Sehen Sie sich noch einmal spl_autoload_register() an. Schauen wir uns ein einfaches Beispiel an: rrree
Ersetzen Sie __autoload durch die Loadprint-Funktion. Loadprint wird jedoch nicht wie __autoload automatisch ausgelöst. Spl_autoload_register() weist PHP an, Loadprint() auszuführen, wenn es auf eine undefinierte Klasse trifft. spl_autoload_register() ruft die statische Methode<? function loadprint( $class ) { $file = $class . '.class.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register( 'loadprint' ); $obj = new PRINTIT(); $obj->doPrint();?>
spl_autoload_register
(PHP 5 >= 5.1.2)
spl_autoload_register auf — Registrieren Sie die Funktion __autoload()Beschreibung
bool spl_autoload_register ([ callback $autoload_function ] )Registrieren Sie die Funktion im SPL __autoload-Funktionsstapel. Aktivieren Sie Funktionen in diesem Stapel, sofern sie noch nicht aktiv sind.
Wenn die __autoload-Funktion in Ihrem Programm implementiert wurde, muss sie explizit im __autoload-Stack registriert werden. Denn die Funktion spl_autoload_register() ersetzt die Funktion __autoload in Zend Engine durch spl_autoload() oder spl_autoload_call().
Parameter
autoload_function
Die zu registrierende Autoloading-Funktion. Wenn keine Parameter angegeben werden, wird die Standardimplementierungsfunktion spl_autoload() von Autoload automatisch registriert.Rückgabewert
Gibt TRUE zurück, wenn erfolgreich, FALSE, wenn fehlgeschlagen.
Hinweis: SPL ist die Abkürzung für Standard PHP Library. Es handelt sich um eine in PHP5 eingeführte Erweiterungsbibliothek. Zu ihren Hauptfunktionen gehört die Implementierung des Autoload-Mechanismus und verschiedener Iterator-Schnittstellen oder -Klassen. Der SPL-Autoload-Mechanismus wird implementiert, indem der Funktionszeiger autoload_func auf eine selbstimplementierte Funktion mit Autoloading-Funktion verweist. SPL verfügt über zwei verschiedene Funktionen, spl_autoload und spl_autoload_call, indem autoload_func auf diese beiden unterschiedlichen Funktionsadressen verweist.<? class test { public static function loadprint( $class ) { $file = $class . '.class.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register( array('test','loadprint') ); //另一种写法:spl_autoload_register( "test::loadprint" ); $obj = new PRINTIT(); $obj->doPrint();?>
classLOAD { staticfunctionloadClass($class_name) { $filename= $class_name.".class.php"; $path= "include/".$filename if(is_file($path)) returninclude$path; } } /** * 设置对象的自动载入 * spl_autoload_register — Register given function as __autoload() implementation */ spl_autoload_register(array('LOAD', 'loadClass')); /** *__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法 * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list */ spl_autoload_register( '__autoload');
Empfohlene verwandte Artikel:
1.Einführung in den PHP-Autoloading-Mechanismus – Funktion spl_autoload_register(), automatisches Laden der PHP-Klasse
2.
So verwenden Sie spl_autoload_register, um automatisch zu implementieren Laden Ausführliche Erklärung der BeispieleVerwandte Videoempfehlungen:
1.Dugu Jiujian (4)_PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung zur Verwendung der Funktion spl_autoload_register() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!