PHP面向对象之类的自动加载

类的自动加载

含义:

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

 

什么时候需要一个类?

1new一个对象的时候;

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

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

 

 

 

 

条件和要求

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

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

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

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

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

 

 

 

 

自定义自动加载函数:

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

 

但:

 

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

 

基本模式为:

 

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

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

.........

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

function  函数1( $class_name ){

//.......

}

function  函数2( $class_name ){

//.......

}

.............

 

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

 

 

posted on 2017-08-17 22:54  好好耕耘  阅读(4038)  评论(0编辑  收藏  举报

导航