首页 > 后端开发 > php教程 > 几个php中类的自动加载的方法的实例详解

几个php中类的自动加载的方法的实例详解

伊谢尔伦
发布: 2023-03-12 08:56:01
原创
1633 人浏览过

本篇文章主要介绍了PHP中类的自动加载的方法。类的自动加载是指在外面的页面中并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。

类的自动加载是指,在外面的页面中,并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。

方法1:使用autoload魔术函数

当程序需要某个类时,就会去调用该函数,该函数我们需要自己去定义并在其中写好加载类文件的通用语句。

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

方法2:使用spl_autoload_register函数

该函数的作用是生命多个可以用来代替autoload函数作用的函数,语法如下:spl_autoload_regist("函数名1");如果用spl_autoload_register,autoload就失效了。

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

再一个例子:

这里autoload 可兼容以下格式:

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

php代码如下:

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;
}
登录后复制

以上是几个php中类的自动加载的方法的实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板