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 ?>
  • 相关阅读:
    鼠标移入和鼠标移出的提示,和样式的转换
    HTML5——新特性,拖放
    关于订阅发布模式
    titanium环境配置
    Matlab与C混编的介绍
    一个相对健壮的node 静态http服务器
    阻赛非阻塞同步异步
    最近在做的事以及一些安排
    说一说js中__proto__和prototype以及原型继承的那些事
    PHP写的爬虫,爬指定网站页面上的各种图片
  • 原文地址:https://www.cnblogs.com/gophper/p/4397444.html
Copyright © 2011-2022 走看看