Heim > Artikel > Backend-Entwicklung > PHP objektorientiert – Codebeispiel zur Implementierung der automatischen Ladeklasse __autoload()
Beim Entwurf einer objektorientierten Programmentwicklung wird normalerweise eine separate PHP-Quelldatei für die Definition jeder Klasse erstellt. Wenn Sie versuchen, eine undefinierte Klasse zu verwenden, meldet PHP einen schwerwiegenden Fehler. Sie können include oder require verwenden, um die Quelldatei einzuschließen, in der sich eine Klasse befindet. Schließlich wissen Sie, welche Klasse Sie verwenden möchten. Wenn eine Seite mehrere Klassen verwenden muss, müssen Sie am Anfang der Skriptseite eine lange Liste von Include-Dateien schreiben, um alle für diese Seite benötigten Klassen einzuschließen. Diese Bearbeitung ist nicht nur umständlich, sondern auch fehleranfällig.
PHP bietet die automatische Ladefunktion von Klassen, wodurch Programmierzeit gespart werden kann. Wenn Sie versuchen, eine Klasse zu verwenden, in der PHP nicht organisiert ist, sucht es nach einer globalen Funktion von autoload() (keine in der Klasse deklarierte Funktion). Wenn diese Funktion vorhanden ist, ruft PHP sie mit einem Parameter auf, nämlich dem Namen der Klasse.
Das folgende Beispiel veranschaulicht, wie autoload() verwendet wird. Es wird davon ausgegangen, dass jede Datei im aktuellen Verzeichnis einer Klasse entspricht. Wenn das Skript versucht, eine Instanz der User-Klasse zu erstellen, führt PHP automatisch die Funktion autoload() aus . Das Skript geht davon aus, dass die User-Klasse in user.class.php definiert ist. Unabhängig davon, ob sie in Groß- oder Kleinbuchstaben aufgerufen wird, gibt PHP die Kleinbuchstabenversion des Namens zurück. Daher müssen Sie beim Organisieren und Definieren der Dateinamen von Klassen bestimmte Regeln befolgen. Der Klassenname muss im Mittelpunkt stehen. Sie können dem Dateinamen auch ein einheitliches Präfix oder Suffix hinzufügen .class.php, xxx_classname.php, classname_xxx.php oder classname.php usw. Es wird empfohlen, für die Benennung von Klassendateien das Format „classname.class.php“ zu verwenden.
<?php/* 声明一个自动加载类的魔术方法autoload() */function autoload($className){ //在方法中使用include包含类所在的文件 include(strtolower($className) . ".class.php"); }$obj = new User(); //User类不存在,则自动调用autoload()函数,将类名“User”作为参数传入$obj2 = new shop(); ?>
Das obige ist der detaillierte Inhalt vonPHP objektorientiert – Codebeispiel zur Implementierung der automatischen Ladeklasse __autoload(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!