• 自动加载-----------------sql_autoload_register() 和__autoload() 的区别


     1:__autoload($class) 因为是一个函数,所以只能定义一次,使用多个会冲突报错;而 sql_autoload_register('function') 可定义多个,它有效地创建一个队列的自动装载函数并按顺序依次定义

    2:SPL函数很丰富,有更多的操作空间:如spl_autoload_unregister()注销已经注册的函数、spl_autoload_functions()返回所有已经注册的

    3: 自动加载对象更加方便,很多框架都是这样做的:

     1 class ClassAutoloader {
     2     public function __construct() {
     3         spl_autoload_register(array($this, 'loader'));
     4     }
     5     private function loader($className) {
     6         echo 'Trying to load ', $className, ' via ', __METHOD__, "()
    ";
     7         include $className . '.php';
     8     }
     9 }
    10 
    11 $autoloader = new ClassAutoloader();
    12 
    13 $obj = new Class1();
    14 $obj = new Class2();

    总结:推荐使用sql_autoload_register()函数,抛弃__autoload()

    //自动加载函数

    spl_autoload_register (function($className)

      $className = str_replace("\", "/", $className);
      if (is_file ($_SERVER['DOCUMENT_ROOT'] . '/' . $className . '.php'))
      {
        require $_SERVER['DOCUMENT_ROOT'] . '/' . $className . '.php';
      }
    });

  • 相关阅读:
    第七次——例行报告
    贪吃蛇功能说明书(初稿)
    第六周——例行报告
    第五周——例行报告
    贪吃蛇界面设计初稿
    贪吃蛇需求分析
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    Python基础综合练习修改
  • 原文地址:https://www.cnblogs.com/jiayu123/p/11285780.html
Copyright © 2020-2023  润新知