Heim >Backend-Entwicklung >PHP-Tutorial >Über das Laden von Klassen in PHP

Über das Laden von Klassen in PHP

autoload
autoloadOriginal
2021-03-01 15:50:333190Durchsuche

Objektorientiert ist eine wichtige Idee, und Klassen sind auch wichtige Konzepte in der Objektorientierung, aber das Laden von Klassen ist der Schlüssel zur Verwendung von Klassen.

Es gibt zwei Möglichkeiten, auf eine Klasse zuzugreifen:

  • Zugriff über instanziierte Objekte

  • Zugriff auf Klassenmitglieder

Voraussetzung für den Zugriff ist, dass die Klasse im Speicher vorhanden ist und daher geladen werden muss im Voraus in Erinnerung.

1. Manuelles Laden

//类文件 Salary.php
<?php
   class Salary{
      public  function Student(){
        echo "Salary下面的Student方法";
      }
   }
?>
应用文件:useSalary.php
<?php
//$s = new Salary();会报错,因为useSalaty.php中间未定义Salary类

include_once &#39;Salary.php&#39;;				//也可以使用require,通常使用_once,因为类不允许重名
$s = new Salary();
echo $s->Student();
?>

2. Automatischer Lademechanismus, der vor PHP7 verwendet wurde: Verwenden Sie die vom System bereitgestellte Funktion __autoload() und dann, wenn das System sie verwenden muss Wenn die Klasse nicht im Speicher vorhanden ist, ruft das System automatisch die Funktion __autoload () auf, um die Klassendatei zu laden.

  • <?php
    //加载类文件是一种比较消耗资源的方式,可以事先使用class_exists()函数来判定类是否存在,存在就不用加载,不存在才加载
    if(!class_exists(&#39;Salary&#39;)){
    	//不存在:加载
        include_once &#39;Salary.php&#39;;
    }
    //使用
    $s = new Salary();
    ?>
    <?php
    function __autoload($classname){	//参数为类名:即当前需要访问的类的名字
    //需要人为定义去哪加载,怎么加载   
        include_once $classname . &#39;.php&#39;;	//假定为当前目录下,类文件名字为:类名.php
    }
    
    //使用类:内存目前并没有
    $s = new Salary();	//系统发现内存没有Salary,所以调用__autoload()去加载
    ?>

    Nach PHP7 wird die Verwendung der Funktion __autoload() nicht empfohlen. Verwenden Sie stattdessen einen Registrierungsmechanismus, um benutzerdefinierte Funktionen mithilfe von spl_autoload_register (definierte Funktion) in das System einzufügen.
  • //若在不同路径下
    <?php
    //定义自动加载
    function __autoload($classname){
        $abc_file = &#39;abc/&#39; . $classname . &#39;.php&#39;;		//如abc/Salary.php
        if(file_exists($c_file)){                      //利用file_exists()判断文件是否存在
            include_once $abc_file;
        }
    }
    ?>
    rrree

    Empfohlen: php-Tutorial

Das obige ist der detaillierte Inhalt vonÜber das Laden 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