Heim >Backend-Entwicklung >PHP-Tutorial >Wie lädt PHP automatisch die beiden Funktionen __autoload und apl_autoload_register?
In diesem Artikel wird erläutert, wie die beiden Funktionen __autoload und apl_autoload_register automatisch über PHP geladen werden.
Bei Verwendung des ThinkPHP-Frameworks ist es hilfreich, den Quellcode zu überprüfen, um die beiden Funktionen __autoload und apl_autoload_register zu verwenden. Diese beiden Funktionen werden zum automatischen Laden verwendet.
Ihre Hauptfunktionen sind: Wann Ihre Quellcodedatei verwendet eine Datei, die nicht geladen wurde. Diese beiden Funktionen werden ausgelöst, um die entladene Datei zu laden.
Die __autoload-Funktion von PHP ist eine magische Funktion, bevor diese Funktion angezeigt wird, wenn eine PHP-Datei auf 100 Objekte verweist , dann muss die Datei include oder require verwenden, um 100 Klassendateien einzuführen, was dazu führt, dass die PHP-Datei extrem groß wird. Es gibt also diese __autoload-Funktion.
Wann wird die __autoload-Funktion aufgerufen?
Wenn das Schlüsselwort new zum Instanziieren eines Objekts in einer PHP-Datei verwendet wird und die Klasse in dieser PHP-Datei nicht definiert ist, wird die Funktion __autoload ausgelöst. Zu diesem Zeitpunkt können Sie die Definition des einführen Klasse PHP-Datei, und dann kann sie erfolgreich instanziiert werden. (Hinweis: Wenn das Objekt, das instanziiert werden muss, die Definition der Klasse in dieser Datei gefunden hat, wird die __autoload-Funktion nicht ausgelöst)
#Animal.php
<!--?php class Animal{} ?--> #main.php <!--?php function __autoload($classname){ $classpath = "{$classname}.php"; if(file_exists($classpath)){ require_once($classpath); }else{ echo $classpath." not be found!"; } } $ani = new Animal(); ?--> 如上述两个文件,运行php main.php (1)运行到new Animal()时,发现 class Animal没有定义; (2)触发了__autoload函数,该函数引进了Animal.php文件; (3)实例化成功。 好了,了解完了__autoload函数的作用,再来看看spl_autoload_register函数的作用。 spl_autoload_register函数的作用就是将自定义函数设置替换为__autoload函数(注意:当文件中同时出现__autoload和spl_autoload_register时,以spl_autoload_register为准) 那么将main.php改成如下也有同样的作用: #main.php <!--?php function myLoad($classname){ $classpath = "{$classname}.php"; if(file_exists($classpath)){ require_once($classpath); }else{ echo $classpath." not be found!"; } } spl_autoload_register("myLoad"); $ani = new Animal(); ?-->
Einführung dazu Artikel So laden Sie die beiden Funktionen __autoload und apl_autoload_register automatisch über PHP. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
PHP-Fehlerbehandlungs- und Implementierungsmethoden
PHP ruft den im Array unter „Wie“ angegebenen Wert ab viele Spalten?
Grundlegendes Erlernen von PHP: PHP-Arrays und Datenstrukturen
Das obige ist der detaillierte Inhalt vonWie lädt PHP automatisch die beiden Funktionen __autoload und apl_autoload_register?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!