php之自动加载(懒加载)

有A类和B类,如果在A类实例化B类,最简单直接的方法就是在B中使用include require_once A的文件,但是这种方法显然是不友好的,在框架中叶不是这么做的,在框架中使用的是自动加载的机制也成为懒加载。
php中自动加载使用spl_autoload_register来完成在没有指定类的情况下自动加载的动作,有了这个方法在new一个类之前,就算没有引入这个类的文件,也能正确初始化指定类,这样我们就不用使用include require_once来引入文件,其实这个方法就是对include方法的封装,同时需要自己实现。下面举个?,并说明其原理
下面这段是autolod.php的源码:

1 test();

【php之自动加载(懒加载)】下面这段是autolod_test.php的源码:
1
代码很简单,但是足以说明spl_autoload_register自动加载的机制,在代码执行的过程中,当new一个未包含的类的时候,php会去执行spl_autoload_register中的第一个参数,就是需要new的类名,这个函数的功能就是把没有引入的类引入进来,但是有个前提就是类的名字和文件的名字要一致,这样就实现了自动加载的功能,是不是很简单。
spl_autoload_register这个方法还有另一种常用的调用方式spl_autoload_register(array($className,$functionName)); 使用指定的类中的静态方法去完成自动加载,静态方法里面的结构就是完成autoload里面的逻辑。
转载于:https://www.cnblogs.com/zzq919101/p/10458106.html

    推荐阅读