__autoload() 函数尝试加载未定义的类
__autoload ( string $class );
你可以通过定义这个函数来启用类的自动加载。
class - 必需。待加载的类名。
没有返回值。
下面示例来说明__autoload 的使用方法,下面分别从 ClassA.php 和 ClassB.php 文件中加载 ClassA 和 ClassB 类
<?php //定义一个类ClassA,文件名为ClassA.php class ClassA{ public function __construct(){ echo "ClassA load success!"; } } ?>
<?php //定义一个类ClassB,文件名为ClassB.php,ClassB继承ClassA class ClassB extends ClassA { public function __construct(){ echo "ClassB load success!"; } } ?>
<?php function __autoload($classname) { $classpath="./".$classname.'.php'; if(file_exists($classpath)){ require_once($classpath); } else{ echo 'class file'.$classpath.'not found!'; } } //ClassA类不存在时,自动调用__autoload()函数,传入参数”ClassA” $obj = new ClassA(); //ClassB类不存在时,自动调用__autoload()函数,传入参数”ClassB” $obj2 = new ClassB(); ?>
在 PHP 5 中,可以定义一个 __autoload()函数,它会在试图使用尚未被定义的类时自动调用,通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类, __autoload() 函数接收的一个参数,就是你想加载的类的类名,所以你做项目时,在组织定义类的文件名时,需要按照一定的规则,最好以类名为中心,也可以加上统一的前缀或后缀形成文件名,比如 xxx_classname.php、classname_xxx.php以及就是classname.php等等。