自动加载 spl_register_autoload

自动加载

在PHP代码中,不需要显式地使用文件路径将类库文件包含进来,便可使用该文件中定义的类库,这种技术称作自动加载。

使用spl_autoload_register()方法可以注册多个autoload()函数,这在主流PHP框架中很常见,原因是:

  • __autoload()函数是全局唯一的,如果框架占了这个名字,便会导致框架的用户用不了其它的__autoload()方法了,包括用户自定义的和其它类库带的。spl_autoload_register()可以注册多个autoload方法,不存在这个问题。
  • __autoload()是一个函数,在实际使用中,开发者势必要赋予它一些变量(例如class path和下文要讲到的class_name => file_path mapping数组)。这就只能靠全局变量(global variable)了,使用全局变量可不是好的编码习惯。spl_autoload_register()可以将一个Class的某个方法注册为autoload函数,如Symfony的spl_autoload_register(array(self::getInstance(), 'autoload')),和Lotusphp的spl_autoload_register(array($this, "loadClass"));

细说“PHP类库自动加载”
PHP autoload 机制详解
你所不知道的 PHP - 自动加载

你可能感兴趣的:(自动加载 spl_register_autoload)