• 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 ?>
  • 相关阅读:
    栈和队列
    数组的遍历查找
    字符串的子串
    两个字符串
    字符串的遍历
    字符串的替换
    数组和矩阵
    Django 自带的ORM增删改查
    what's the CRSF ??
    Rabbitmq -Publish_Subscribe模式- python编码实现
  • 原文地址:https://www.cnblogs.com/gophper/p/4397444.html
Copyright © 2020-2023  润新知