自动加载 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 - 自动加载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复...
    王兴伍阅读 532评论 0 0
  • 在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这...
    四月不见阅读 1,090评论 0 0
  • 本文分为两部分:第一部分讲__autoload()函数实现的类自动加载。第二部分讲spl_autoload_reg...
    舒小贱阅读 2,592评论 1 4
  • spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class...
    他删时阅读 143评论 0 0
  • 第一个30天月度检视 李凤 基本情况# 姓名:王义浩 年龄:12岁 小组:第1组 #第一阶段30天目标及完成情...
    凤凰_c50d阅读 320评论 0 0