Mechanismus zum automatischen Laden der PHP-Klasse
Automatisches Laden von PHP:
Wenn wir vor PHP5 eine bestimmte Klasse oder Klassenmethode verwenden wollten, mussten wir diese einschließen oder erfordern, bevor wir sie verwenden konnten Es ist notwendig, ein Include zu schreiben.
Der PHP-Autor möchte es einfach machen. Es ist am besten, auf eine Klasse zu verweisen. Wenn derzeit kein Include vorhanden ist, kann das System die Klasse automatisch finden und automatisch einführen~
Also: __autoload() Funktionen entstanden.
wird normalerweise in der Anwendungseintragsklasse platziert, z. B. discuz, in class_core.php.
Lassen Sie uns zunächst über ein einfaches Beispiel sprechen:
Der erste Fall: Der Inhalt der Datei A.php ist wie folgt
<?php class A{ public function __construct(){ echo 'fff'; } } ?> 文件C.php 中内容如下: <?php function __autoload($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } $a = new A(); //这边会自动调用__autoload,引入A.php文件 ?>
Der zweite Fall: Manchmal hoffe ich Um das automatische Laden anzupassen und dem Lader einen cooleren Namen zu geben, sollte C.php wie folgt geändert werden:
<?php function loader($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register('loader'); //注册一个自动加载方法,覆盖原有的__autoload $a = new A(); ?>
Die dritte Situation: Ich möchte anspruchsvoller sein und eine Klasse verwenden, um das automatische Laden zu verwalten wird geladen
<?php class Loader { public static function loadClass($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register(array('Loader', 'loadClass')); $a = new A(); ?>
Derzeit die beste Form.
Normalerweise setzen wir spl_autoload_register(*) in das Eingabeskript, also von Anfang an in Anführungszeichen. Zum Beispiel der folgende Discuz-Ansatz.
if(function_exist('spl_autoload_register')){ spl_autoload_register(array('core','autoload')); //如果是php5以上,存在注册函数,则注册自己写的core类中的autoload为自动加载函数 }else{ function __autoload($class){ //如果不是,则重写php原生函数__autoload函数,让其调用自己的core中函数。 return core::autoload($class); } }
Diesen Absatz an den Anfang der Eintragsdatei zu setzen ist natürlich ausgezeichnet~

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

