php中自动加载是什么东西?

本篇文章介绍了PHP中的自动加载的概念,以及在什么情况下需要使用自动加载,感兴趣的小伙伴一起来学习一下吧!

当某行代码需要一个类的时候,php的内部机制可以做到“自动加载该类文件”,以满足该行需要一个类的这种需求。
什么时候需要一个类?

1,new一个对象的时候;

2,使用一个类的静态方法的时候;

3,定义一个类(B)并以另一个类(A)作为父类的时候;

20200117213806332.png

条件和要求

1, 当需要一个类的时候,就会自动调用某个函数(默认是__autoload),并传入所需要的类的名字

2, 一个类应该保存到一个独立的“类文件中”:即其中只有该类的定义,没有别的代码;

3,习惯上,类文件的命名要有一定的“规则”,通常是:类名.class.php

4,通常,我们需要将各种类,存储在一些特定的目录中,以方便确定其位置!

5,在该自动加载的函数中,“充分”使用传过来的类名,以构建一个合适的文件路径并载入;

20200117213854178.png

自定义自动加载函数

刚才,__autoload()函数,是系统内部的自动加载函数,我们只是定义其函数体。

但:

我们可以使用更多函数(自定义的),来实现更灵活的自动加载!

基本模式为:

spl_autoload_register(“函数1”); //声明“函数1”作为自动加载函数;
spl_autoload_register(“函数2”); //声明“函数2”也作为自动加载函数;
.........

然后,就去定义这些函数,跟定义__autoload()函数一样:

function 函数1( $class_name ){
//.......
}
function 函数2( $class_name ){
//.......
}
.............

这样,系统就会一次调用这些自动加载函数去加载所需要的类,直到加载成功!

20200117213937770.png

推荐:《PHP教程》