PHP类的自动加载以及自定义自动加载函数.

类的自动加载函数是个魔术方法,这个函数不需要调用是自动会加载调用的,PHP体系内部提供的方法,__ aotuload(),使用形式为:

<?php
 
function __autoload($className){
require_once "./".$className.".php";   // 含义为 当需要一个类的时候 这个函数就会自动加载 出这个目录下的这个类文件
 
?>

注意:
自动这个加载函数只能加载某一个目录路径的类文件,如果需要加载其他目录下面的类文件的时候就需要自定义加载函数了

spl_autoload_register(“函数名”) 先提前声明定义,然后再写对应的函数名中的,和自动加载函数形式类似:

//先声明一个函数名,提前告知系统将有 个自动加载函数要自己书写
spl_autoload_register("autoload1");
spl_autoload_register("autoload2");
 
function autoload1($className){
    $file="目录".$className.".class.php";
    
    if(file_exits($file)){  // 在这里做了个判断,file_exits()是判断文件或目录是否存在,如果不存在则提示,存在则直接加载
     require $file;
        }else{
            echo "需要加载的类文件不存在!!!";
        }
 
 
      //加载某个目录下面的类文件 (.class.php为文件后缀)
}
 
function autoload2($className){
  $file2="目录".$className.".class.php";
  if(file_exits($file)){  
     require $file2;
        }else{
            echo "需要加载的类文件不存在!!!";
        }
}

当用到这两个目录中的类文件的类的时候,这两个函数就会自动调用,用不到类的时候则不运行,给内存空间也省了许多地方

也可以直接把这两个函数直接封装进一个自定义加载类方法中去,可以实现多个类的自动加载,方法如下:

$file1="./class/".$className."tool.php";
$file2="./file/".$className."tool.php";
$file3="./exe/config/".$className.".php";
// 定义的路经变量
spl_autoload_resgister("autoload");
//注册一个函数名为autoload的 自定义自动加载类的函数
function autoload($className){
    if(file_exits($file1)){ // 如果这个类名在这个文件里面,则加载这个file1文件,下方两个同理
//$className 这个类 的文件 在这个file1路经中能找到这个对应的文件 所以可以加载   
        require_once $file1;
    }else if(file_exits($file2)){
        require_once $file2;
    }else if(file_exits($file3)){
        require_once $file3;
    }
 
 
}

--------------------- https://blog.csdn.net/qq_36622490/article/details/84196590

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值