PHP 类文件的自动加载机制 _autoload()

PHP 类文件的自动加载机制 __autoload()

如果一个类在多个脚本中都需要使用,可以将一个类的定义代码,单独的封装到一个文件中,这种文件也叫作类文件,在需要的时候,将整个文件载入进来即可!

 

PHP在执行的时候,如果发现需要一个类(只要是和这个类相关的任何的操作),但此时当前脚本又没有这个类的定义代码,也没有手动加载这个类文件,那么,PHP会自动的调用一个名字叫作__autoload($class_name)函数,调用的时候,会给该函数传递一个参数,该参数就是当前所需要的类的类名!

PHP 类文件的自动加载机制 _autoload()

此时,未引入Student.class.php这个类文件,用__autoload()函数自动调用需要加载的文件!

 

这样做的最大好处就是在一个脚本中只需要载入一个文件就行了,但是也有一个很大的弊端,就是会有很多多余的类也被载入了(当前脚本根本就用不上)!

 

一般的,系统默认的自动加载函数就是__autoload(),但是随着项目规模的扩大,有可能出现多个自动加载函数,比如加载的文件里面又有自动加载函数!此时就出现了函数重名的问题了!

第一步:定义一个可以加载类文件的普通函数

PHP 类文件的自动加载机制 _autoload()

但是,此时系统不会自动的调用f1函数!

 

第二步:将该普通函数注册成自动加载函数

 

此时,需要使用一个系统函数来完成:

spl_autoload_register(‘function_name’)

有一个参数,就是函数的名字!

PHP 类文件的自动加载机制 _autoload()

结果如下

PHP 类文件的自动加载机制 _autoload()