__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等等。