Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse der automatischen Klassenladeinstanz in PHP

Analyse der automatischen Klassenladeinstanz in PHP

小云云
小云云Original
2018-03-31 09:57:561261Durchsuche

Wenn Sie PHP-Code in einer anderen Datei in PHP verwenden müssen, können Sie include, include_once, require und require_once verwenden, um Klassendateien einzuführen. Der Unterschied zwischen „require“ und „include“ liegt im Unterschied in der Syntaxstriktheit: Wenn in der importierten Datei ein Fehler auftritt, wird ein Fehler mithilfe der „include“-Syntax gemeldet, die nachfolgenden Anweisungen werden jedoch weiterhin ausgeführt. require stoppt die Ausführung, nachdem ein Fehler aufgetreten ist.

Der Unterschied zwischen include und include_once besteht darin, dass bei Verwendung von include die Datei einmal importiert wird, wenn sie existiert, während include_once nur einmal importiert wird, wenn dieselbe Datei importiert wird.

Da im Allgemeinen eine große Anzahl importierter Dateien in die Verwendung einbezogen werden kann, muss eine große Anzahl von Include/Require-Anweisungen geschrieben werden. Dies ist äußerst unpraktisch. Sie können das automatische Laden verwenden.

1. Verwenden Sie die magische Funktion __autoload():

Wenn das Programm „eine Klasse benötigt“, ruft das System automatisch diese Funktion auf, die von uns selbst definiert werden muss:

function __autoload($className){
	require "需要引入文件的路径(不包含文件名)".$className.".php";
}

Die Variable $className ist der Klassenname, der beim automatischen Aufruf der Funktion übergeben wird.

2. Verwenden Sie die Funktion spl_autoload_register():

Verwenden Sie sie, um mehrere __autoload()-Funktionen zu deklarieren,

spl_autoload_register(" Funktionsname 1" );

spl_autoload_register("Funktionsname 2"); ............ Diese Funktion ist eigentlich dieselbe wie __autoload(); 🎜>

Der Unterschied zwischen spl_autoload_register() und __autoload() besteht darin, dass spl_autoload_register() verschiedene Dateien aus unterschiedlichen Dateipfaden importieren kann. Und wenn spl_autoload_register() in der Datei registriert ist, ist die Methode __autoload() automatisch ungültig.
//此处声明三个自动加载函数名,
spl_autoload_register('auto1');
spl_autoload_register('auto2');
spl_autoload_register('auto2');
//接下来需要定义所声明的函数。
function auto1($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
function auto2($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
function auto2($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
在使用该方法时,需要类时,会按照声明的顺序先从auto1()调用,如果有的话就引入,如果不存在,就到下一个函数调用......
Verwandte Empfehlungen:

PHP implementiert automatische Ladefunktion

PHP implementiert Routing und automatisches Laden von Klassen

PHP implementiert das automatische Laden verwandter Funktionen

Das obige ist der detaillierte Inhalt vonAnalyse der automatischen Klassenladeinstanz in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn