[php]
__autoload();
spl_autoload_register();
1. __autoload()
可以将需要使用类的时候把文件加载到程序中
[php]
function __autoload($classname) {
if (file_exists($classname . '.php')) {
include $classname . '.php';//可细化
} else {
echo $classname . '.php is not exists.';
exit;
}
}
$indexcontroller = new indexcontroller();
在程序的运行过程中,php会检测这个$classname类是否已经加载,如果没有加载会去执行__autoload(),再去加载$classname这个类。在实例化类的对象、访问类中的静态变量和方法等都会去检测类是否已经加载,是否有定义__autoload()函数,如果都没有就会报错。
在复杂点的系统中,用__autoload()来实现类的自动加载可能会很复杂。
2. spl_autoload_register()
[php]
spl_autoload_register();
$index = new index();
spl_autoload_register()函数中没有参数,则会自动默认实现void spl_autoload ( string $class_name [,string $file_extensions ] )函数,默认支持.php和.ini
[php]
function load1($classname) {
//include
}
function load2($classname) {
//include
}
spl_autoload_register('load1');//注册到spl_autoload_functions
spl_autoload_register('load2');
$index = new index();
会先通过load1去加载类,如果load1中没有,再通过load2去加载,如果还有以次类推。
实现一个自动加载方法比较多,这举例一个
[php]
也可以根据自己的需要来设计实现
http://www.bkjia.com/phpjc/477831.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/477831.htmltecharticlephp中有两种自动加载机制函数 [php] __autoload(); spl_autoload_register(); 1. __autoload() 可以将需要使用类的时候把文件加载到程序中 [php] ?php function...
