Heim >Backend-Entwicklung >PHP-Problem >Die Rolle der PHP-Eintragsdatei

Die Rolle der PHP-Eintragsdatei

藏色散人
藏色散人Original
2019-11-09 09:58:344019Durchsuche

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 &#39;fff&#39;;
  }
}
?>

Der Inhalt der Datei C.php ist wie folgt:

<?php  
function __autoload($class)  
{  
$file = $class . &#39;.php&#39;;  
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 . &#39;.php&#39;;
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register(&#39;loader&#39;); //注册一个自动加载方法,覆盖原有的__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 . &#39;.php&#39;;  
if (is_file($file)) {  
require_once($file);  
}  
}  
}  
 
spl_autoload_register(array(&#39;Loader&#39;, &#39;loadClass&#39;));  
 
$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(&#39;spl_autoload_register&#39;)){
 
  spl_autoload_register(array(&#39;core&#39;,&#39;autoload&#39;));  //如果是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!

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
Vorheriger Artikel:Prinzip der PHP-SuchfunktionNächster Artikel:Prinzip der PHP-Suchfunktion