Heim >Backend-Entwicklung >PHP-Problem >Die Rolle der PHP-Eintragsdatei
Die Rolle der PHP-Eintragsdatei
Die PHP-Eintragsdatei kann die automatische Ladefunktion realisieren.
Automatische Ladefunktion zum Parsen von PHP-Eintragsdateien
Automatisches Laden von PHP:
Vor PHP5 mussten wir eine bestimmte Klasse verwenden oder class-Methode, die Sie einschließen oder erfordern müssen, bevor Sie sie verwenden können. Bitte
Der PHP-Autor möchte es einfach machen Wenn derzeit kein Include vorhanden ist, kann das System diese Klasse automatisch finden und ~
So entstand die Funktion __autoload().
wird normalerweise in der Anwendungseintragsklasse platziert, z. B. discuz, in class_core.php.
Empfohlen: „PHP-Tutorial“
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'; } } ?>
Der Inhalt der Datei C.php ist wie folgt:
<?php function __autoload($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } $a = new A(); //这边会自动调用__autoload,引入A.php文件 ?>
Zweiter Fall: Manchmal hoffe ich, Autoload und anzupassen Wenn Sie einen neueren Cool-Name-Loader erstellen möchten, wird C.php wie folgt geändert:
<?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 hoffe, fortgeschrittener zu sein und eine Klasse zu verwenden, um das automatische Laden zu verwalten
<?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, d. h. von Anfang an in Anführungszeichen. Zum Beispiel die Discuz-Methode unten.
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); } }
Es ist großartig, diesen Absatz an den Anfang der Eintragsdatei zu setzen~
Das obige ist der detaillierte Inhalt vonDie Rolle der PHP-Eintragsdatei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!