Beim Schreiben von Code stoßen wir häufig auf Kopfschmerzen, da viele Klassen in eine Seite eingefügt werden müssen und wir die Funktionen include_once oder require_once() verwenden müssen, um sie einzeln einzuführen. Wenn der importierte Inhalt nicht groß ist, ist er immer noch akzeptabel. Wenn jedoch ein Dutzend oder Dutzende Dateien importiert werden müssen, ist die Anzahl der Vorgänge groß, ganz zu schweigen von der Irritation, und es kommt zu Fällen wiederholter Einführung oder vergessen zu zitieren.
Jetzt können wir in PHP5 die Methode __autoload() verwenden, um dieses Problem zu lösen. Die Methode __autoload() kann die zu verwendenden Klassen automatisch instanziieren. Wenn ein Programm eine Klasse verwendet, die Klasse jedoch nicht instanziiert wurde, ruft PHP5 die Methode __autoload() auf, um automatisch nach Dateien mit demselben Namen wie die Klasse im angegebenen Pfad zu suchen. Wenn es gefunden wird, setzt das Programm die Ausführung fort; andernfalls wird ein Fehler gemeldet.
Hinweis:
Alle anderen Methoden müssen innerhalb der Klasse hinzugefügt werden, damit sie funktionieren. __autoload() ist die einzige Methode, die nicht in der Klasse hinzugefügt wird
Solange es funktioniert wird innerhalb der Klasse hinzugefügt. Wenn eine Klasse auf der Seite verwendet wird, wird der Klassenname automatisch an diesen Parameter übergeben.
Zum Beispiel:
Der Code der Klassendatei sport.class.php:
<?php class Sport{ private $type; public function __construct($type){ $this->type = $type; } public function __toString(){ return $this->type; } } ?>
Der Code unter der Datei index.php:
<?php function __autoload($class_name){ //创建__autoload方法 $class_path = $class_name . '.class.php'; //类文件路径 if(file_exists($class_path)){ //判断文件是否存在 include_once($class_path); //动态引入文件 }else echo '类路径错误'; } $sport = new Sport('打篮球'); echo $sport; ?>
Erstellen Sie zunächst die Klasse in der Klassendatei sport.class.php, instanziieren Sie sie jedoch nicht. Fügen Sie dann die Klassen in der Klassendatei in die PHP-Datei index.php ein.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Instanz der magischen Methode __autoload() (PHP-Tutorial für fortgeschrittene objektorientierte Objekte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!