Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung der Instanz der magischen Methode __autoload() (PHP-Tutorial für fortgeschrittene objektorientierte Objekte)

Ausführliche Erklärung der Instanz der magischen Methode __autoload() (PHP-Tutorial für fortgeschrittene objektorientierte Objekte)

巴扎黑
巴扎黑Original
2017-04-18 18:17:442228Durchsuche

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 . &#39;.class.php&#39;;                           //类文件路径
if(file_exists($class_path)){                                                  //判断文件是否存在
include_once($class_path);                                          //动态引入文件
}else
echo &#39;类路径错误&#39;;
}
$sport = new Sport(&#39;打篮球&#39;);
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!

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