1: __ autoload ($ class) because it is a function, it is defined only once, using a plurality of error conflict; and sql_autoload_register ( 'function') define a plurality, it effectively creates a queue of automatic loading function according to the order in turn defined
2: SPL function is very rich, there is more room for maneuver: as spl_autoload_unregister () function unregister already registered, spl_autoload_functions () returns all registered
3: automatically loads the object is more convenient, many frameworks are doing:
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__, "()\n"; 7 include $className . '.php'; 8 } 9 } 10 11 $autoloader = new ClassAutoloader(); 12 13 $obj = new Class1(); 14 $obj = new Class2();
Summary: recommended sql_autoload_register () function, abandoned __autoload ()
2: SPL function is very rich, there is more room for maneuver: as spl_autoload_unregister () function unregister already registered, spl_autoload_functions () returns all registered
3: automatically loads the object is more convenient, many frameworks are doing:
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__, "()\n"; 7 include $className . '.php'; 8 } 9 } 10 11 $autoloader = new ClassAutoloader(); 12 13 $obj = new Class1(); 14 $obj = new Class2();
Summary: recommended sql_autoload_register () function, abandoned __autoload ()