Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Beispiele für automatische Ladevorgänge von PHP-Klassen
Das Beispiel in diesem Artikel beschreibt den automatischen Ladevorgang der PHP-Klasse. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Automatisches Laden von Klassen
Auf externen Seiten müssen keine Klassendateien eingeführt werden, aber das Programm lädt automatisch eine Klasse, wenn es benötigt wird. Gehen Sie zu „Dynamisches Laden“ der Klasse.
① Beim Erstellen eines neuen Objekts
② Verwenden Sie direkt einen Klassennamen (um statische Eigenschaften und Methoden zu bedienen)
Verwenden Sie die magische Funktion __autoload
Wann In zwei Situationen wird diese Funktion aufgerufen. Diese Funktion erfordert, dass wir sie im Voraus definieren und eine allgemeine Anweisung zum Laden von Klassendateien schreiben
function __autoload($name){ require './lib/'.$name.'.class.php'; }
Verwenden Sie spl_autoload_register()
Verwenden Sie es, um mehrere Funktionen zu registrieren (deklarieren), die __autoload() ersetzen können. Natürlich müssen Sie diese Funktionen definieren, und die Funktion der Funktion ist dieselbe wie __autoload(), aber Sie können damit umgehen es zu diesem Zeitpunkt Weitere Situationen
//注册用于自动加载的函数 spl_autoload_register("model"); spl_autoload_register("controll"); //分别定义两个函数 function model($name){ $file = './model/'.$name.'.class.php'; if(file_exists($file)){ require './model/'.$name.'.class.php'; } } //如果需要一个类,但当前页面还没加载该类 //就会依次调用model()和controll(),直到找到该类文件加载,否则就报错 function controll($name){ $file = './controll/'.$name.'.class.php'; if(file_exists($file)){ require './controll/'.$name.'.class.php'; } }
//若注册的是方法而不是函数,则需要使用数组 spl_autoload_register( //非静态方法 array($this,'model'), //静态方法 array(__CLASS__,'controller') );
Projektszenarioanwendung
//自动加载 //控制器类 模型类 核心类 //对于所有的类分为可以确定的类以及可以扩展的类 spl_autoload_register('autoLoad'); //先处理确定的框架核心类 function autoLoad($name){ //类名与类文件映射数组 $framework_class_list = array( 'mySqldb' => './framework/mySqldb.class.php' ); if(isset($framework_class_list[$name])){ require $framework_class_list[$name]; }elseif(substr($name,-10)=='Controller'){ require './application/'.PLATFORM.'/controller/'.$name.'.class.php'; }elseif(substr($name,-6)=='Modele'){ require './application/'.PLATFORM.'/modele/'.$name.'.class.php'; } }
Ich hoffe, dass das, was dieser Artikel beschreibt, für jeden hilfreich sein wird, der sich mit der PHP-Programmierung beschäftigt.
Ausführlichere Beispiele für automatische Ladevorgänge von PHP-Klassen finden Sie auf der chinesischen PHP-Website für verwandte Artikel!