zoukankan      html  css  js  c++  java
  • 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 ?>
  • 相关阅读:
    MT【235】两道函数题
    MT【234】正方形染色(二)
    MT【233】染色正方形
    MT【232】展开式中的系数
    MT【231】棋子方法数
    MT【230】一道代数不等式
    MT【229】最小值函数
    MT【228】整数解的个数
    Python-list中的排序
    IO多路复用
  • 原文地址:https://www.cnblogs.com/gophper/p/4397444.html
Copyright © 2011-2022 走看看