在大的项目中,不可能把所有的类都写在一个php文件,当在一个php文件中需要市调用另一个文件中实现的类时.就需要通过include把这个文件引入,不过有的时候,大的项目中文件众多,要一一将所有需要要的类include进来,还真是让人头痛,鉴于此,php5提供了__autoload()来解决这个
在大的项目中,不可能把所有的类都写在一个php文件,当在一个php文件中需要市调用另一个文件中实现的类时.就需要通过include把这个文件引入,不过有的时候,大的项目中文件众多,要一一将所有需要要的类include进来,还真是让人头痛,鉴于此,php5提供了__autoload()来解决这个问题
php5利用__autoload()函数来自动加载所需要的类, __autoload()函数的参数即为所需要自动加载的类
例:
<?php
function __autoload($class_name){
include($class_name.".php");
//实例化对象时,如果类不存在,则调用__autoload()函数,其参数为类名
$s = new xx_obj;
echo $s->name;
}
?>
上例中实现了php5预定义全局函数__autoload(),其功能为自动加载所需要的类,在实例化一个对象时,没有include来引入文件,因此找不到这个类,这时php将自动调用__autoload()函数,并传递参数(类名),__autoload()函数加载文件 "类名.php",如果这个文件中定义了类,那么上面的例子就会正常运行.
不难发现,在组织定义类的文件名时,需要安一定的规则,最好是以类名为中心,加上统一的前缀,或后缀形成文件名.
延伸阅读:PHP autoload机制详解