自动加载-----------------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';
  }
});

原文地址:https://www.cnblogs.com/jiayu123/p/11285780.html