sql_autoload_register()函数

复习__autoload的时候,看到了spl_autoload_register()这个函数。但是一下子没有弄明白,通过查资料我算是弄明白了。

1.__autoload()    ——    自动加载函数

我把很多个类文件以 类名.class.php的形式存放在class目录中,在class的同级目录中建立一个index.php。进入class目录里面分别建立class1.class.php、class2.class.php、class3.class.php文件,分别为里面的文件添加一下代码

 
<?php //class1.class.php中
class class1{
    public function __construct(){ 
        echo "class1";
    }
}
?>
  
<?php //class2.class.php中
class class2{
    public function __construct(){ 
        echo "class2";
    }
}
?>
  
<?php //class3.class.php中
class class3{
    public function __construct(){ 
        echo "class3";
    }
}
?>

 

index.php文件中写入

 1 <?php function __autoload($classname){
 2     $filename = "./class/".$classname.".class.php";
 3     if(is_file($filename)){
 4         include $filename;
 5     }
 6 }
 7  $test1 = new class1(); echo '<br/>'; $test1 = new class2(); echo '<br/>'; $test1 = new class3(); 
 8  //结果是 class1
 9 class2
10 class3
11   
12 ?>

 

我们成功的自动加载了class下面所有的要加载的类。

2.spl_autoload_register()    ——    注册__autoload()函数

class里面的文件不做任何改变,只是简单的改写一下index.php

 1 <?php // 写一个loadclass函数
 2 // loadclass函数不具备自动加载类的功能
 3 function loadclass($classname){
 4     $filename = "./class/".$classname.".class.php";
 5     if(is_file($filename)){
 6         include $filename;
 7     }
 8 } // spl_autoload_register()函数让这个loadclass具备了自动加载类的功能 spl_autoload_register("loadclass"); 
 9  $test1 = new class1(); echo '<br/>'; $test1 = new class2(); echo '<br/>'; $test1 = new class3();
10 ?>

 

转载于:https://www.cnblogs.com/gophper/p/4397444.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值