Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erläuterung mehrerer Beispiele für automatische Lademethoden von Klassen in PHP

Ausführliche Erläuterung mehrerer Beispiele für automatische Lademethoden von Klassen in PHP

伊谢尔伦
伊谢尔伦Original
2017-07-01 10:03:011601Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum automatischen Laden der Klasse in PHP vorgestellt. Das automatische Laden von Klassen bedeutet, dass keine Klassendateien auf externen Seiten „eingefügt“ werden müssen, sondern das Programm die erforderlichen Klassendateien bei Bedarf dynamisch lädt.

Das automatische Laden von Klassen bedeutet, dass keine Klassendateien in externen Seiten „eingefügt“ werden müssen, sondern das Programm die erforderlichen Klassendateien bei Bedarf dynamisch lädt.

Methode 1: Verwenden Sie die Funktion „Autoload Magic“

Wenn das Programm eine bestimmte Klasse benötigt, ruft es diese auf Funktion, wir müssen diese Funktion selbst definieren und die allgemeine Anweisung zum Laden von Klassendateien darin schreiben.

<?php
    //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A
     function autoload($className){
      require "./21".$className.".class.php";
    }
    $o1 = new A();
    $o1->v1 = 10;
    echo "<br/>v1:".$o1->v1;
  ?>

Methode 2: Verwenden Sie die Funktion spl_autoload_register

Die Funktion davon Funktion ist Es gibt mehrere Funktionen, die verwendet werden können, um die Autoload-Funktion zu ersetzen. Die Syntax lautet wie folgt: spl_autoload_regist("Funktionsname 1"); wenn spl_autoload_register verwendet wird, ist autoload ungültig.

<?php
    //注册两个用于自动加载的函数名
    spl_autoload_register(&#39;auto1&#39;);
    spl_autoload_register(&#39;auto2&#39;);
    function auto1($className){
      $file = "./21".$className.".class.php";
      if(file_exists($file)){
        require "./21".$className.".class.php";
      }
    }
    function auto1($className){
      $file = "./22".$className.".class.php";
      if(file_exists($file)){
        require "./22".$className.".class.php";
      }
    }
    //如果需要一个雷,但这个页面还没有记载,就会依次调用auto1和auto2,知道找到该类文件并加载
  ?>

Ein weiteres Beispiel:

Hier ist Autoload mit den folgenden Formaten kompatibel:

Cache_File_Json
class_xxx.php
xxx.class.php
xxx.php

PHP-Code lautet wie folgt:

function autoload($className){
 $dirs=explode(&#39;_&#39;,$className);
 $fileName=array_pop($dirs);
 //print_r($dirs);
 $filePath=$fileName;
 if(is_array($dirs) && (count($dirs) > 0)){
  //echo &#39;\n---\n&#39;; print_r($dirs);
  $dirPath=&#39;&#39;;
  foreach ($dirs as $dir){
   if($dir){
    $dirPath.=strtolower($dir).DIRECTORY_SEPARATOR;
   }
  }
  $filePath=$dirPath.$fileName.&#39;.php&#39;;
 }else {
  if( file_exists(&#39;class_&#39;.$fileName.&#39;.php&#39;)){
   $filePath=&#39;class_&#39;.$fileName.&#39;.php&#39;;
  }else {
   if( file_exists($fileName.&#39;.class.php&#39;)){
    $filePath=$fileName.&#39;.class.php&#39;;
   } else {
    $filePath=$fileName.&#39;.php&#39;;
   }
  }
 }
 //var_dump($filePath);
 require $filePath;
}

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung mehrerer Beispiele für automatische Lademethoden von Klassen in PHP. 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