-2

I always write like this:

function __autoload($className){
   if(file_exists($className)){
       include $classname . '.class.php';
   }
}

but I found some coders write like this:

sql_autoload_register(function($className){
   $class = str_replace('\\', '/', $className);
   require_once($className);
});

so,I want to ask the difference between sql_autoload_register and __autoload,thanks!

Boro
  • 7,913
  • 4
  • 43
  • 85
yifanes
  • 39
  • 1
  • 6

1 Answers1

1

From the PHP docs spl_autoload_register. The part in bold might give you more of an idea.

Register a function with the spl provided __autoload stack. If the stack is not yet activated it will be activated.

If your code has an existing __autoload() function then this function must be explicitly registered on the __autoload stack. This is because spl_autoload_register() will effectively replace the engine cache for the __autoload() function by either spl_autoload() or spl_autoload_call().

If there must be multiple autoload functions, spl_autoload_register() allows for this. It effectively creates a queue of autoload functions, and runs through each of them in the order they are defined. By contrast, __autoload() may only be defined once.

Edit: This answer should help https://stackoverflow.com/a/6894585/710827

Community
  • 1
  • 1
Nick Fury
  • 1,313
  • 3
  • 13
  • 23