Maison >développement back-end >Problème PHP >Comment implémenter le chargement automatique des classes en php

Comment implémenter le chargement automatique des classes en php

藏色散人
藏色散人original
2020-10-19 11:05:405413parcourir

Comment implémenter le chargement automatique des classes en PHP : 1. Utilisez la fonction magique "__autoload" pour charger les classes ; 2. Utilisez la fonction "spl_autoload_register" pour remplacer la fonction de chargement automatique.

Comment implémenter le chargement automatique des classes en php

Recommandé : "Tutoriel vidéo PHP"

Le chargement automatique des classes signifie que dans la page extérieure, il y a pas besoin d'"importer" des fichiers de classe, mais le programme chargera dynamiquement les fichiers de classe requis en cas de besoin.

Méthode 1 : utilisez la fonction magique __autoload

Lorsque le programme a besoin d'une certaine classe, il appellera cette fonction. Vous devez définir et écrire vous-même les instructions générales pour charger les fichiers de classe.

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

Méthode 2 : Utilisez la fonction spl_autoload_register

La fonction de cette fonction est pour avoir plus de vies Une fonction qui peut être utilisée pour remplacer la fonction autoload. La syntaxe est la suivante : spl_autoload_regist("function name 1"); si spl_autoload_register est utilisé, autoload sera invalide.

<?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,知道找到该类文件并加载
  ?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn